Kubernetes 总括图中的舵副舵执行顺序
我有一个包含多个子图的伞形图,我只是想确保subchart1在subchart2之前运行,等等。我们如何定义subchart执行的顺序Kubernetes 总括图中的舵副舵执行顺序,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我有一个包含多个子图的伞形图,我只是想确保subchart1在subchart2之前运行,等等。我们如何定义subchart执行的顺序 似乎钩重只适用于声明钩重的图表。您不能下订单,我认为您不需要它。您可以依靠运行状况检查,因此如果一个图表依赖于另一个图表,它可能会失败并重新启动,直到运行状况检查通过。以下是与图表执行顺序相关的一部分: 上面的部分解释了如何指定图表依赖项,但是 这是否影响使用helm install和helm安装图表 升级 假设一个名为“a”的图表创建了以下Kubernetes
似乎钩重只适用于声明钩重的图表。您不能下订单,我认为您不需要它。您可以依靠运行状况检查,因此如果一个图表依赖于另一个图表,它可能会失败并重新启动,直到运行状况检查通过。以下是与图表执行顺序相关的一部分: 上面的部分解释了如何指定图表依赖项,但是 这是否影响使用helm install和helm安装图表 升级 假设一个名为“a”的图表创建了以下Kubernetes 物体 名称空间“A-名称空间”
statefulset“A-statefulset”
服务“A服务” 此外,A依赖于创建 物体 名称空间“B-名称空间”
replicaset“B-replicaset”
服务“B服务”
安装/升级海图A后,需要释放单舵 创建/修改。该版本将创建/更新以上所有内容 Kubernetes对象的顺序如下: A-名称空间
B-名称空间
A-StatefulSet
B-复制集
A-服务
B服务
这是因为当Helm安装/升级图表时 图表中的对象及其所有依赖项聚合为一个集合;然后按类型和名称排序; 然后按该顺序创建/更新
因此,将创建一个包含图表及其依赖项的所有对象的单一版本 Kubernetes类型的安装顺序由枚举给出 InstallOrder in kind\u sorter.go() kind_sorter.go()的一部分与安装图表相关:
var InstallOrder KindSortOrder = []string{
"Namespace",
"NetworkPolicy",
"ResourceQuota",
"LimitRange",
"PodSecurityPolicy",
"PodDisruptionBudget",
"Secret",
"ConfigMap",
"StorageClass",
"PersistentVolume",
"PersistentVolumeClaim",
"ServiceAccount",
"CustomResourceDefinition",
"ClusterRole",
"ClusterRoleList",
"ClusterRoleBinding",
"ClusterRoleBindingList",
"Role",
"RoleList",
"RoleBinding",
"RoleBindingList",
"Service",
"DaemonSet",
"Pod",
"ReplicationController",
"ReplicaSet",
"Deployment",
"HorizontalPodAutoscaler",
"StatefulSet",
"Job",
"CronJob",
"Ingress",
"APIService",
}
有一种变通方法,可以更改默认行为,elementalvoid在以下方面共享:
我已经将我的服务、机密和配置映射设置为预安装
钩子来实现此行为
例如:
apiVersion: v1
kind: Service
metadata:
name: foo
annotations:
"helm.sh/hook": "pre-install"
--
可以为挂钩定义一个重量,这将有助于建立一个平衡
确定性执行顺序。使用以下公式定义权重:
注释:
annotations:
"helm.sh/hook-weight": "5"
吊钩重量可以是正数或负数,但必须是负数
表示为字符串。当Tiller开始执行
特定种类的钩子它将按升序对这些钩子进行排序
秩序
关于钩子的更多详细信息可以在这里(,)和源文件(,)中找到。当您无法下订单时,您可以使用Init Containers来验证您的POD是否在实际运行之前拥有所有需要运行的内容:
如果我添加一个钩子权重configMap:2和Secret:3,那么我认为它将改变资源类型的执行顺序。但事实并非如此,赫尔姆仍然执行秘密命令——配置地图。如果我有多个具有钩子权重的ConfigMap,那么钩子权重实际上会应用并排序多个ConfigMap的顺序,这是真的吗?您不能更改具有钩子权重的类型的顺序。开发人员可能会在将来更改,或者添加一些额外的参数来实现这一点,但现在您只能更改同一类型的多个图表的顺序,如ConfigMaps。答案第一行中的文档链接现在似乎已断开。我发现这个链接()有相同的信息。谢谢!我已经修好了链接。