helm 的 `--dry-run` 选项需要连接 kubernetes API 服务器吗?面临连接错误

问题描述 投票:0回答:4

我正在尝试使用

--dry-run
选项测试我的开发 helm 聊天部署输出。当我运行以下命令时,它尝试连接到 Kubernetes API 服务器。

连接 Kubernetes 集群是否需要试运行选项?我只想检查部署 yaml 文件输出。

helm install mychart-0.1.0.tgz --dry-run --debug

Error: Get http://localhost:8080/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.
kubernetes kubernetes-helm
4个回答
124
投票

还有一个选项可以运行

helm template ./mychart
来渲染生成的 YAML,而无需连接到tiller。 与
helm lint
结合使用,它是验证图表有效性的绝佳组合。


75
投票

Helm 文档中所述

当你想测试模板渲染,但不实际安装任何东西时,可以使用 helm install --debug --dry-run ./mychart。这会将图表发送到 Tiller 服务器,Tiller 服务器将渲染模板。但它不会安装图表,而是将渲染的模板返回给您,以便您可以看到输出

因此它仍然需要连接到 Tiller 以使用正确的值渲染模板。使用 --dry-run 选项的区别在于它不会实际安装图表。


25
投票

helm install --dry-run
helm template
命令之间有一个小区别:

  • helm install --dry-run
    会将您的图表发送至舵柄, 将根据 K8S 规范验证并渲染清单文件以及 YAML 验证。

  • helm template
    只会生成清单并验证您的 YAML 文件是否有效。但是,它不会检查生成的清单是否是有效的 Kubernetes 资源。参考:Helm 文档

希望这有帮助!


2
投票

请使用

Helm template
helm lint
代替。

helm lint
是您验证图表是否遵循最佳实践的首选工具

© www.soinside.com 2019 - 2024. All rights reserved.