我正在使用Ansible、Docker、Jenkins和Kubernetes实现持续集成和持续部署。我已经使用Ansible和kubespray部署创建了一个具有1个主节点和2个工作节点的Kubernetes集群。我有30-40个微服务应用。我需要创建这么多的服务和部署。
我的困惑
当我使用Kubernetes包管理器Kubernetes Helm chart时,我需要在主节点上启动我的图表,还是在我部署kubernete集群的基础机器上启动我的图表?
如果您正在寻找在 Kubernetes 集群中运行 helm 客户端的方法,请检查 Helm-Operator 的概念。
我建议您也看看术语“GitOps”——一套将Git与Kubernetes结合起来的实践,并将Git作为您的声明性基础设施和应用程序的真实来源。
有两个伟大的OSS项目实现了GitOps最佳实践:
你的困惑似乎在于头盔组件的配置和交互。这个解释提供了一个很好的图形来表示这种关系。
如果您使用的是传统的Helm/Tiller配置,Helm将在您的机器上本地安装,并且假设您拥有正确的<code>kubectl<code>配置,您可以通过运行<code>Helm init<code>将Tiller安装到集群中来“初始化”集群。Tiller将作为kube系统中的部署运行
,并具有创建/修改/删除/查看图表资源的RBAC权限。Helm将自动为您管理所有API对象,kube调度器将相应地为您的所有节点调度POD。您不应通过控制台直接与主机和节点进行交互。
在任何一种配置中,您都将始终使用kubectl
访问集群的权限从本地机器进行Helm部署。
希望这有所帮助!