【问题标题】:helm dry run install掌舵空运行安装
【发布时间】:2018-06-02 07:43:50
【问题描述】:

我正在尝试使用 --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


【解决方案1】:

还有一个选项可以运行helm template ./mychart 来呈现生成的 YAML,而无需连接到分蘖。 结合helm lint,它是验证图表有效性的绝佳组合。

【讨论】:

  • 这个答案应该是经过验证的答案。使用牧场主,我们不可能进行“试运行”,因为没有可访问的 Tiler。 helm template 是一种非常简单的检查模板输出的方法。谢谢!
  • @Metal3d 但是 helm 模板不包含将要安装的实际值,因此在很多情况下,带有 --dry-run 选项的 helm install 是获取实际值而不是模板的最佳选择.
  • 现在 helm v3 已经发布,运行 --dry-run 选项要容易得多。
【解决方案2】:

Helm's documentation所述

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

所以它仍然需要连接到 Tiller 以使用正确的值呈现您的模板。使用 --dry-run 选项的不同之处在于它不会实际安装图表。

【讨论】:

  • Eldad AK 的回答更简单,不需要 Tiller 服务器。
  • Tiller 在 helm 3.0.0 之后被移除,这被认为是安全隐患。
【解决方案3】:

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

  • helm install --dry-run 会将您的图表发送到分蘖 将根据 K8S 规范验证和渲染清单文件以及 YAML 验证。

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

希望这会有所帮助!

【讨论】:

    【解决方案4】:

    请改用Helm templatehelm lint

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 2019-03-15
      • 2020-10-17
      • 2017-04-08
      • 2019-10-09
      • 2018-12-11
      相关资源
      最近更新 更多