Helm 按特定顺序安装 "deployment"
Helm install in specific order for "deployment"
我正在尝试创建一个 Helm 图表 (x),在图表 (x) 中按特定顺序进行 5 次部署:
- 部署 1 (zk)
- 部署 2(安全)
- 部署 3(localmaster)
- 部署 4 (nginx)
- 部署 5 (semoss)
Helm/Tiller版本:"v2.12.3"
Kubectl 版本:主要:“1”,次要:“17”
Minikube 版本:v1.6.2
我目前拥有的:
资源:
==> v1/Deployment
姓名
- 本地管理员
- Nginx
- 安全
- 塞莫斯
- Zk
我可以轻松部署 chart (x),但是一旦我 运行 helm ls,我的 (x) chart 就会按随机顺序排列,如上所示。我只有一个图表名称 (x),在 (x) 内我有:
Chart.yaml 图表 模板 values.yaml
Templates 和 charts 是目录,其余是文件。
是否有特定的方法或技巧可以让我的 x(图表)按我想要的顺序排列?我做了一些研究,但我不太确定 helm spray 是否在正确的调用中,因为我正在尝试部署 1 个具有不同部署的图表,而不是伞状图表和许多其他子图表。
如果您需要更多信息,请告诉我。
Helm 是包管理器,允许您将应用程序定义为集群上的一组组件,并提供从头到尾管理这些组件的机制。
Helm 本身不创建 pods,它向 Kubernetes api 发送请求,然后 Kubernetes 正在创建一切。
我知道如何使用 Helm 实现它。
Helm 部署顺序 Kinds
是硬编码的 here。但是如果你想给k8s设置同类的部署顺序,可以使用annotations
.
您可以设置注释:Pre-install hook with hook-weight
like in this example (lower value in hook-weight have higher priority). Similar case can be found on Github.
它看起来像下面的例子:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
helm.sh/hook: pre-install
helm.sh/hook-weight: "10"
labels:
app.kubernetes.io/instance: test
...
您可以使用 kubectl get events
检查首先创建了哪个部署。但是,pods 的创建仍由 Kubernetes 安排。
要准确获得您需要的内容,您可以使用 initContainers 和 hardcode
"sleep" 命令。
第一次部署睡眠 1s,第二次部署 5s,第三次部署10 秒,取决于部署需要多长时间才能创建所有 pods。
您可以查看 this 文章,但请记住 spec.containers
和 spec.initContainers
是两个不同的东西。
我正在尝试创建一个 Helm 图表 (x),在图表 (x) 中按特定顺序进行 5 次部署:
- 部署 1 (zk)
- 部署 2(安全)
- 部署 3(localmaster)
- 部署 4 (nginx)
- 部署 5 (semoss)
Helm/Tiller版本:"v2.12.3" Kubectl 版本:主要:“1”,次要:“17” Minikube 版本:v1.6.2
我目前拥有的: 资源: ==> v1/Deployment
姓名
- 本地管理员
- Nginx
- 安全
- 塞莫斯
- Zk
我可以轻松部署 chart (x),但是一旦我 运行 helm ls,我的 (x) chart 就会按随机顺序排列,如上所示。我只有一个图表名称 (x),在 (x) 内我有:
Chart.yaml 图表 模板 values.yaml
Templates 和 charts 是目录,其余是文件。 是否有特定的方法或技巧可以让我的 x(图表)按我想要的顺序排列?我做了一些研究,但我不太确定 helm spray 是否在正确的调用中,因为我正在尝试部署 1 个具有不同部署的图表,而不是伞状图表和许多其他子图表。 如果您需要更多信息,请告诉我。
Helm 是包管理器,允许您将应用程序定义为集群上的一组组件,并提供从头到尾管理这些组件的机制。
Helm 本身不创建 pods,它向 Kubernetes api 发送请求,然后 Kubernetes 正在创建一切。
我知道如何使用 Helm 实现它。
Helm 部署顺序 Kinds
是硬编码的 here。但是如果你想给k8s设置同类的部署顺序,可以使用annotations
.
您可以设置注释:Pre-install hook with hook-weight
like in this example (lower value in hook-weight have higher priority). Similar case can be found on Github.
它看起来像下面的例子:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
helm.sh/hook: pre-install
helm.sh/hook-weight: "10"
labels:
app.kubernetes.io/instance: test
...
您可以使用 kubectl get events
检查首先创建了哪个部署。但是,pods 的创建仍由 Kubernetes 安排。
要准确获得您需要的内容,您可以使用 initContainers 和 hardcode
"sleep" 命令。
第一次部署睡眠 1s,第二次部署 5s,第三次部署10 秒,取决于部署需要多长时间才能创建所有 pods。
您可以查看 this 文章,但请记住 spec.containers
和 spec.initContainers
是两个不同的东西。