zer*_*ing 2 kubernetes kubernetes-helm
我想在我的 kubernetes 集群上部署一堆 yaml 文件https://github.com/quay/quay/tree/master/deploy/k8s并想知道立即部署这些文件的最佳方法是什么。
可以直接应用文件夹
kubectl create -f ./<foldername>
kubectl apply -f ./<foldername>
Run Code Online (Sandbox Code Playgroud)
您还可以在一个命令中添加多个文件
kubectl apply -f test.yaml,test-1.yaml
Run Code Online (Sandbox Code Playgroud)
您还可以将所有 YAML 文件合并到一个文件中并进一步管理它。
Marge YAML 文件使用---
例如 :
apiVersion: v1
kind: Service
metadata:
name: test-data
labels:
app: test-data
spec:
ports:
- name: http
port: 80
targetPort: 9595
- name: https
port: 9595
targetPort: 9595
selector:
app: test-data
tier: frontend
---
apiVersion: v1
kind: Service
metadata:
name: test-app
labels:
app: test-app
spec:
ports:
- name: http
port: 80
targetPort: 9595
- name: https
port: 9595
targetPort: 9595
selector:
app: test-app
tier: frontend
Run Code Online (Sandbox Code Playgroud)
您可以考虑使用Helm(Kubernetes 的包管理器)。就像我们在 Linux 中使用yumor一样,我们在 k8s 中使用。apt-gethelm
使用 Helm,您可以一次性部署多个资源(一堆 YAML)。Helm Charts 可以帮助您定义、安装和升级甚至是最复杂的 Kubernetes 应用程序。Helm 使用一种称为图表的打包格式。图表是描述一组相关 Kubernetes 资源的文件集合。单个图表可用于部署简单的内容(例如 memcached pod)或复杂的内容(例如包含 HTTP 服务器、数据库、缓存等的完整 Web 应用程序堆栈)。此外,您不需要合并所有 YAML;它们可以作为给定图表的一部分保持独立。此外,如果一个图表依赖于另一个图表,您可以使用 helm依赖功能。
我使用 Helm 的原因是因为每当我部署图表时,helm 都会将其作为发布进行跟踪。对图表的任何更改都会获得新的发布版本。这样,升级(或回滚)变得非常容易,您可以自信地说出给定版本的一部分。
此外,如果您有不同的微服务,它们之间有共同点,那么 helm 提供了一个名为 Library Chart 的功能,您可以使用该功能创建可在图表之间重复使用的定义,从而保持图表干燥。
观看此介绍视频:https://www.youtube.com/watch ?v=Zzwq9FmZdsU&t=2s
| 归档时间: |
|
| 查看次数: |
6240 次 |
| 最近记录: |