我通常是掌舵人和Kubernetes的初学者。最近,我已经开始尝试部署到AKS集群,该集群将包括隐藏在负载平衡NGINX节点后面的多个Cluster 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中犯了什么错误。如果不是,我应该怎么做才能通过入口文件路由到我的许多服务之一?在这种时尚中是否有任何实际的values.yaml文件设置示例可以在某处看到?每次搜索时,我都会发现Ingress.yaml文件被修改为Kubernetes对象,而不是模板化的Helm图表。
事实证明,使用values.yaml,我没有给人们一个公平的机会。令人讨厌的yaml行发生在[[after我提供的代码片段中,很微妙。确保提供正确的入口定义所必需的代码是:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: chart-example.local
paths:
- /test
tls: {}
我的错误是随后出现的tls行。我忽略了意识到tls节的独立性意味着它已包含在ingress节中,并且具有。一个缺少的空格
_tls: {}
代替
__tls: {}
我的示例现在正确呈现了模板(下划线仅用于说明空格的数量,因此当然应该将其删除)。