“有”匹配节点选择器 - helm chart

问题描述 投票:0回答:1

假设,我们有两个kubernetes环境,一个是基于Windows的k8s集群环境,一个是基于linux的k8s集群环境。两者都有不同的 kubeconfig,没有混淆(不是一个 k8s 集群中的 windows 和 linux)。

问题: 如果我们部署到基于 windows 的 k8s 集群,其中

nodeSelector
名称在 helm chart 中定义并且它应该使用“kind:deployment”。使用我们用于 windows k8s 集群的相同 helm chart,如果我们部署到基于 linux 的 k8s 集群,适当的
nodeSelector
linux 名称也在 helm chart 中定义,它应该使用“kind: daemonset”。

我们如何使用 helm chart(使用模板或 _helpers.tpl)实现,有没有我可以看到的例子?

kubernetes-helm
1个回答
0
投票

因为你有两个独立的集群,在我的 helm chart 中,我的模板目录中可能有两个清单。我会在我的清单周围使用

if
语句来确定该模板是否已呈现。例如,在
values.yaml
中有一个值,它指定类似
nodeOS
的值,并且具有可能的值
windows
linux
然后你可以像这样构建一个清单

部署.yaml

{{- if eq .Values.nodeOS "windows" }}
apiVersion: apps/v1
kind: Deployment
... rest of manifest
{{- end }}

daemonset.yaml

{{- if eq .Values.nodeOS "linux" }}
apiVersion: apps/v1
kind: Daemonset
... rest of manifest
{{- end }}

这会给你一个单一的清单,你可以通过执行以下操作来确定在安装时呈现的内容

helm install <chart_name> . --set=nodesOS="windows"
(Would only deploy the deployment)

helm install <chart_name> . --set=nodesOS="linux"
(只会部署守护进程)

© www.soinside.com 2019 - 2024. All rights reserved.