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

piok6c0g  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(4)|浏览(130)

我试图测试我的开发 Helm 聊天部署输出使用--dry-run选项。当我运行下面的命令时,它试图连接到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.
qij5mzcb

qij5mzcb1#

还有一个选项可以运行helm template ./mychart来呈现生成的YAML,而不需要连接到tiller。结合helm lint,它是一个伟大的设置,以验证您的图表的有效性。

os8fio9y

os8fio9y2#

Helm's documentation所述
当你想测试模板渲染,但不实际安装任何东西时,你可以使用helm install --debug --dry-run ./mychart。这将把图表发送到Tiller服务器,Tiller服务器将呈现模板。但它不会安装图表,而是将呈现的模板返回给您,以便您可以看到输出
因此,它仍然需要连接到Tiller以使用正确的值呈现模板。使用--dry-run选项的区别在于它不会实际安装图表。

pcww981p

pcww981p3#

helm install --dry-runhelm template命令之间有一个小差异:

  • helm install --dry-run会将您的图表发送给tiller,后者将根据K8S规范沿着YAML验证来验证和呈现清单文件。
  • helm template只会生成清单并验证YAML文件是否有效。但是,它不会检查生成的清单是否是有效的Kubernetes资源。参考:Helm

希望这对你有帮助!

ni65a41a

ni65a41a4#

使用Helm templatehelm lint代替。
helm lint是您验证图表是否遵循最佳实践的首选工具 *。

相关问题