nginx - 使用 helm chart 部署 nginx 负载均衡服务时,helm values.yaml 应该是什么样的?

标签 nginx kubernetes yaml kubernetes-helm

总的来说,我是 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/

相关文章:

azure - 具有 GKE 的外部 OIDC 提供商

json - YAML 和 JSON 有什么区别?

mysql - 需要 SQL 中的一组字段中的一个

azure - 通过 azure devops 中的管道将 terraform 部署到 azure

Nginx:根据引用主机名有选择地启用压缩

c# - 调用 api Controller 时获取客户端 wan IP 地址

reactjs - 无法使用React将nginx代理设置为Docker容器

kubernetes - 如何使用 consul 在 kubernetes 中公开应用程序

kubernetes - 如何增加 K3S 中每个节点的最大 pod 数?

nginx 配置以启用具有源匹配的 CORS