Continuous integration 如何从k8s集群外部托管的CI/CD管道使用kubernetes helm

Continuous integration 如何从k8s集群外部托管的CI/CD管道使用kubernetes helm,continuous-integration,kubernetes,continuous-deployment,kubectl,kubernetes-helm,Continuous Integration,Kubernetes,Continuous Deployment,Kubectl,Kubernetes Helm,我正在使用kubernetes helm将应用程序部署到我的集群。当helm使用集群的kube配置文件部署到集群时,我的笔记本电脑上的一切都正常工作 我想从我的CI/CD服务器(与我的集群分开)使用helm自动将应用部署到我的集群。我已经为我的CI/CD服务器创建了一个k8s服务帐户以供使用。但是如何为服务帐户创建kube配置文件,以便helm可以使用它从CI/CD服务器连接到我的群集 或者这不是从CI/CD服务器使用Helm的正确方法吗 Helm通过使用安装的kubectl与集群通信来工作。这

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

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


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

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

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


您可以在Helm的文档中找到更多详细信息,请查看以获取更多信息。

在这种情况下,您需要在CI/CD服务器识别的任何从机或代理上安装
kubectl
,或者在自动化中动态安装
kubectl
,然后确保您已经或能够生成kubeconfig以供使用

要回答这个问题:

但是如何为服务帐户创建kube配置文件

您可以使用
kubectl config set cluster
kubectl config set credentials
kubectl config set context
在默认或自定义kubeconfig文件中设置新群集、凭据和上下文,以与
kubectl
一起使用。如果设置了
KUBECONFIG
env变量并指向一个KUBECONFIG文件,则该方法有效,或者在设置新条目时只需传递
-KUBECONFIG
以指向一个自定义文件


这里是v1.6版。

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

为什么不在kubernetes群集内运行CI服务器,这样就不必管理访问群集的机密了?我们可以在管道内运行kubectl或helm,效果非常好。

这是正确的方法。您只需复制~/.kube目录即可获得所需的配置。在我通常的设置中,我至少有两个集群,staging和prod,我通常不在prod上运行构建内容。有两个集群,并且当构建/部署不在部署应用程序的同一集群上运行时,问题再次出现。因为repo在集群之外,webhook不能与我的集群通信?使公关建设变得如此困难