【问题标题】:Expose mulitple containerPort via values.yaml通过 values.yaml 公开多个 containerPort
【发布时间】:2021-09-22 15:14:20
【问题描述】:
有没有办法在 values.yaml 文件中传递端口数组。我想设置多个 ContainerPort。我尝试使用--set "test.containerPort={8080,10102,19905} 并收到错误消息,因为 io.k8s.apimachinery.pkg.util.intstr.IntOrString: got "array", expected "string".
任何示例/建议都会很有帮助。
【问题讨论】:
标签:
kubernetes
kubernetes-helm
helmfile
helm3
【解决方案1】:
Helm 使用 Go 模板机制,因此它实际上从 values.yaml 获取参数并将它们放入 template/* 文件中。
换句话说,你设置多个容器端口的方式取决于你使用的 Helm Chart。
例如,如果有一个文件template/my-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
...
spec:
template:
spec:
containers:
ports:
{{ toYaml .Values.ports| indent 10 }}
...
然后,您可以使用以下values.yaml 来设置多个容器端口。
ports:
- name: my first port
containerPort: 5678
- name: my second port
containerPort: 5679