kubernetes - Helm 按特定顺序安装以进行“部署”
问题描述
我正在尝试按特定顺序在图表 (x) 中创建一个包含 5 个部署的 Helm 图表 (x):
- 部署 1 (zk)
- 部署 2(安全)
- 部署 3 (localmaster)
- 部署 4 (nginx)
- 部署 5 (semos)
Helm/Tiller 版本:“v2.12.3” Kubectl 版本:Major:“1”,Minor:“17” Minikube 版本:v1.6.2
我目前拥有的:资源:==> v1/Deployment
姓名
- 本地管理员
- Nginx
- 安全
- 西莫斯
- Zk
我可以轻松地部署图表 (x),但是一旦我运行 helm ls,我的 (x) 图表就会按照您在上面看到的随机顺序排列。我只有一个图表名称 (x),在 (x) 内我有:
Chart.yaml 图表 模板 values.yaml
模板和图表是目录,其余的是文件。有没有特定的方法或技巧可以让我的 x(图表)按我想要的顺序排列?我已经进行了一些研究,但我不确定 helm spray 是否在正确的调用中,因为我正在尝试部署 1 个具有不同部署的图表,而不是伞形图表和许多其他子图表。如果您需要更多信息,请告诉我。
解决方案
Helm是包管理器,允许您将应用程序定义为集群上的一组组件,并提供从头到尾管理这些集合的机制。
Helm 本身不创建 Pod,它向 Kubernetes api 发送请求,然后 Kubernetes 正在创建所有内容。
我知道如何使用 Helm 来实现它。
Helm 的部署顺序在这里Kinds
是硬编码的。但是,如果您想为 k8s 设置相同类型的部署顺序,可以使用.annotations
您可以设置注释:在此示例中使用like预安装挂钩(挂钩权重中的较低值具有较高优先级)。类似的案例可以在Github上找到。hook-weight
它看起来像下面的例子:
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
。但是,Pod 的创建仍然由 Kubernetes 安排。
要准确获取您需要的内容,您可以使用initContainers和hardcode
“sleep”命令。
第一次使用 sleep 1s 部署,第二次使用 5s 部署,第三次使用 10s,取决于部署需要多长时间才能创建所有 pod。
您可以查看这篇文章,但请记住spec.containers
,spec.initContainers
这是两件不同的事情。
推荐阅读
- java - 线程类方法运行内部无限循环
- codeigniter - 具有特定有限数据随机的 Codeignitor 分页
- sql - SQL - 检查多项选择题的正确答案
- regex - Perl - 非法十六进制数字警告错误
- kivy - 为什么kivy给新孩子索引= 0?
- amazon-web-services - 在 nuxt build 上将静态资产上传到 S3
- typescript - 在 Typescript 中动态访问类实例属性
- reactjs - 在 React 中显示黑色背景的模态
- azure - 使用 terraform 创建 azure 企业应用程序
- python - 如何使用 nohup python 解决编码问题?