我的公司已决定过渡到基于微服务的架构。Kubernetes CI/CD管道
在过去的几个月中,我们一直在研究这件事的架构究竟是什么样子。
到目前为止,我们已经谈妥上:
DOTNET为核心业务的发展(尽管是与语言无关的是有点的最终目标)
卡夫卡的消息代理
Docker
Kubernetes
Ansible
我们有概念的工作,这似乎已经打勾所有正确的箱子与管理团队,是一个绝对的喜悦与合作的一个非常基本的证明。
我的下一个任务是调查开发工作流如何实际工作的选项。他们已经习惯以CI/CD方式工作,其中一些新产品使用Jenkins/Octopus Deploy。
我的问题是:在部署到Kubernetes集群时,您是否有任何建议设置CI/CD管道的建议?
必备品的名单:
多个环境即集成,测试,用户验收测试,运行,生产。
一种方法,不同的业务部门可以独特地处理到不同环境的部署(开发只能推动集成,测试人员进入测试等)。这可能是他们最大的问题 - 他们习惯于使用八达通,他们喜欢它处理这种问题的方式。
通过点击按钮(或尽可能少的步骤)来回滚/部署的能力。
我们将最初部署到我们自己的服务器。
我已经花了几天的时间寻找选择,其中有很多。
到目前为止,詹金斯管道似乎可能是一个很好的开始。 Spinnakar也似乎是一个坚实的选择。我确实读过Fabric8,虽然它提供了我所要求的很多东西,但它看起来有点像过度杀伤。
看看[helm](https://helm.sh/)。这是一个K8S包管理器。然后,您的Jenkins部署管道将部署一个服务包,其中包含您的所有服务/部署/状态集等资源到您的k8s群集中。 Helm也支持回滚。 – fishi
我会检查出来 - 谢谢。 –
请看看我为[类似的问题(https://stackoverflow.com/questions/36408339/best-cd-strategy-for-kubernetes-deployments/48268573#48268573),很想响应听听你的认为! – errordeveloper