我们正在开发一个Web应用程序,该应用程序在同一存储库中具有多个微服务。
对于我们现有的整体应用程序,我们正在使用Helm和Jenkins将应用程序部署到Kubernetes。当涉及微服务时,我们正在努力定义CI / CD管道策略。以下是不清楚的问题:
对于整体应用程序,我有一个Dockerfile,一个Jenkinsfile和一个Helm Chart。对于构建阶段,我正在使用以下命令构建映像。
docker.build("registry/myrepo/image:${env.BUILD_NUMBER}"
对于整体应用程序,我有一个包含多个values.yaml的图表,例如为多个环境配置的values.dev.yaml,values.prod.yaml。
所以我们的问题是
1。在微服务的Jenkinsfile中,我们应该如何为多个Dockerfile构建和推送多个容器?目前,每个微服务都在其根目录中拥有自己的Dockerfile。
2。Jenkins是否有可能区分我们要部署的微服务?我的意思是,有时我们可能仅针对特定服务进行了一些更改,我们希望部署此更改。那么我们应该组织独立的管道还是有什么方法可以处理相同的管道?
3。我们应该如何组织Helm图表来部署微服务Kubernetes?我们应该为每个服务创建多个图表还是创建仅引用一个values.yaml的多个模板?
答案 0 :(得分:2)
好像你快到了。
当与每个微服务相关联的团队可以独立部署升级而不影响整个堆栈的可用性时,多个图表可以成为将来的成熟级别。
答案 1 :(得分:0)