【问题标题】:When using helm charts to deploy an nginx load balanced service, what should the helm values.yaml look like?使用 helm chart 部署 nginx 负载均衡服务时,helm values.yaml 应该是什么样的?
【发布时间】:2020-08-12 07:34:11
【问题描述】:

总的来说,我是 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 行:未找到预期的密钥。”

第 38 行对应于入口部分的末尾(后面的空白行)。我假设我的 yaml 格式不正确,我终生无法找到以这种方式使用此文件的任何示例。我做对了吗?如果是,我在 yaml.xml 中犯了什么错误。如果没有,我应该怎么做才能通过入口文件路由到我的众多服务之一?是否有任何实际示例在此 fasion 中设置的 values.yaml 文件可以在某处看到?每次搜索时,我都会发现 Ingress.yaml 文件被修改为 Kubernetes 对象,而不是模板化 Helm 图表。

【问题讨论】:

  • 拜托,你能链接你所指的舵图吗?请花点时间阅读How to create a Minimal, Reproducible Example
  • 嗨@mWatney 感谢您的提问。我的图表纯粹是本地测试图表,没有在任何地方发布。我试图弄清楚如何正确创建 values.yaml。但是,在尝试重新创建可重现的示例时,我解决了布局问题,非常感谢您的提示。

标签: nginx kubernetes yaml kubernetes-helm


【解决方案1】:

事实证明,对于 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: {}

我的示例现在可以正确呈现模板(下划线仅用于演示空格的数量,当然应该删除)。

【讨论】:

    猜你喜欢
    • 2022-12-29
    • 2022-11-30
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多