1

我正在使用 kubernetes helm 将应用程序部署到我的集群。当 helm 使用集群的 kube-config 文件部署到集群时,我的笔记本电脑一切正常。

我想使用我的 CI/CD 服务器(与我的集群分开)中的 helm 自动将应用程序部署到我的集群。我创建了一个 k8s 服务帐户供我的 CI/CD 服务器使用。但是如何为服务帐户创建一个 kube-config 文件,以便 helm 可以使用它从我的 CI/CD 服务器连接到我的集群?

或者这不是从 CI/CD 服务器使用 Helm 的正确方法吗?

4

4 回答 4

1

为什么不在 kubernetes 集群中运行 CI 服务器,然后就不必管理访问集群的秘密?我们在Jenkins X上这样做并且效果很好——我们可以在管道中运行 kubectl 或 helm 就好了。

于 2018-05-22T07:24:23.130 回答
1

Helm 通过使用已安装的 kubectl 与您的集群通信来工作。这意味着如果您可以通过 kubectl 访问您的集群,则可以将 helm 与该集群一起使用。

不要忘记确保您使用正确的上下文,以防您的 kubcfg 文件中有多个集群。您可以通过运行kubectl config current-context并将其与 kubecfg 中的集群详细信息进行比较来检查它。

您可以在 Helm 的文档中找到更多详细信息,查看快速入门指南以获取更多信息。

于 2017-04-26T05:46:10.437 回答
0

我们创建了helmsman,它为您提供声明性语法来管理集群中的 helm 图表。无论您在何处运行它,它都会为您配置 kubectl(以及 helm)。它也可以从 docker 容器中使用。

于 2018-03-07T19:21:16.213 回答
0

在这种情况下,您将希望安装kubectl在您确定供 CI/CD 服务器使用的任何从属服务器或代理上,或者kubectl在您的自动化中即时安装,然后确保您有或能够生成 kubeconfig 以利用。

要回答这个问题:

但是如何为服务帐户创建 kube-config 文件...

您可以使用、和设置新的集群、凭据和上下文以kubectl在默认或自定义 kubeconfig 文件中使用。如果您设置了 env 变量并指向 kubeconfig 文件,则可以使用,或者在设置新条目时只需传递指向自定义文件。kubectl config set-clusterkubectl config set-credentialskubectl config set-contextKUBECONFIG-kubeconfig

这是v1.6的相关 API 文档

于 2017-05-01T16:25:37.780 回答