问题描述
在 microsoft docs 上,我发现我应该定义这个 Helm YAML 文件来创建 Kubernetes Ingress Controller:
controller:
service:
loadBalancerIP: 10.240.0.42
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
所以你可以很容易地注意到它没有通常的 Kubernetes apiVersion 和 kind 规范。 之后,在我需要执行 helm 命令以创建 Ingress 的同一链接上:
helm install nginx-ingress ingress-Nginx/ingress-Nginx \
-f internal-ingress.yaml \
..............
如您所见 - 建议的 Helm 文件不是很常见,但我想坚持那些官方的 Microsoft 说明! 同样,它没有使用常规 apiVersion 和种类符号创建 Ingress Controller 的规范,就像在互联网上可以找到的许多链接和示例一样。
https://github.com/helm/charts/blob/master/stable/nginx-ingress/templates/controller-service.yaml https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/
Can I set custom ports for a Kubernetes ingress to listen on besides 80 / 443?
所以我真的觉得非常非常迷茫!!!你能帮我解决这个问题吗 - 我需要设置它的端口,但我真的找不到这个 YAML Microsoft 示例的规范文档和示例,它实际上有效!!!
controller:
service:
loadBalancerIP: 10.240.0.42
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
在哪里以及如何找到正确的语法,如何将常规的“apiVersion”和“kind”规范“翻译”成这个?
为什么他们用这种不同的格式以这种方式混淆??? 请帮忙!谢谢
解决方法
-f
未设置 Microsoft 文档中所述的“清单”。根据{{1}}:
helm install --help
,-f
字符串指定 YAML 文件中的值
或者一个网址(可以指定多个)
默认 values file 包含要传递到图表中的值。
用户提供的带有 --values
的值与默认值文件合并以生成最终清单。优先顺序是:
- 图表中的 values.yaml 文件
- 如果这是一个子图表,父图表的 values.yaml 文件
- 一个值文件,如果使用 -f 标志传递到 helm install 或 helm upgrade 中 (helm install -f myvals.yaml ./mychart)
- 用--set传递的个别参数(如helm install --set foo=bar ./mychart)
上面的列表是按特殊性顺序排列的:values.yaml 是默认值,可以被父图表的 values.yaml 覆盖,而后者又可以被用户提供的值文件覆盖,而后者又可以是被 --set 参数覆盖。
您在做什么是覆盖默认值文件顶部的 -f
值。您可以找到 ingress-nginx 图表 here 的原始/默认值。