总的来说,我是 helm 和 Kubernetes 的初学者。最近,我开始尝试部署到 AKS 集群,其中包括隐藏在负载平衡 NGINX 节点后面的多个集群 IP 服务。今天我使用 Helm 2.2 并成功安装了 NGINX 节点。我现在的理解是,对于我在 Helm 中的每个单独的服务图表,我使用注释来启用 Nginx 路由。正如我所看到的,我应该能够修改图表顶部的 values.yaml 文件(别处)来执行这些操作。
service:
type: ClusterIP
port: 80
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- chart-example.local
当我执行上述操作时(为简洁起见,排除了文件的其余部分)我收到错误“将 YAML 转换为 JSON:yaml:第 38 行:未找到预期的 key 。”
第 38 行对应于入口部分的末尾(紧接其后的空白行)。我假设我的 yaml 格式不正确,我终生无法找到以这种方式使用此文件的任何示例。我做对了吗?如果是,我在 yaml.xml 中犯了什么错误。如果没有,我应该怎么做才能通过入口文件路由到我的众多服务之一?是否有任何实际示例在此 fasion 中设置的 values.yaml 文件可以在某处看到?每次搜索时,我都会发现 Ingress.yaml 文件被修改为 Kubernetes 对象,而不是模板化的 Helm 图表。
最佳答案
事实证明,使用 values.yaml 我没有给人们一个公平的机会。有问题的 yaml 行发生在我提供的代码片段之后并且很微妙。确保提供正确入口定义所必需的代码如下:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: chart-example.local
paths:
- /test
tls: {}
我的错误是后来出现的 tls 行。我没有意识到 tls 部分的缩进意味着它包含在 ingress 部分中,并且缺少一个空格。
_tls: {}
代替
__tls: {}
我的示例现在可以正确呈现模板(下划线仅用于演示空格的数量,当然应该删除)。
关于nginx - 使用 helm chart 部署 nginx 负载均衡服务时,helm values.yaml 应该是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61481028/