首页 > 解决方案 > 使用 Jenkins 通过 EKS 部署应用程序

问题描述

谁能告诉我使用 Jenkins 在 Kubernetes 或 EKS 集群上部署应用程序的部署流程。部署文件如何根据 docker 镜像的变化进行更新。如果我们有多个部署文件并且我们更改其中任何一个的任何图像。是否全部重新部署?

标签: kubernetesjenkins-pipelinedevopscontinuous-deploymentamazon-eks

解决方案


谁能告诉我使用 Jenkins 在 Kubernetes 或 EKS 集群上部署应用程序的部署流程。

确保您的 Jenkins 实例具有 IAM 角色并更新了 kubeconfig,以便它可以访问 Kubernetes 集群。如果您考虑在 Kubernetes 集群上运行管道,Jenkins XTekton Pipelines可能是更好的为 Kubernetes 设计的替代方案。

部署文件如何根据 docker 镜像的变化进行更新。

将部署清单保存在版本控制中也是一个很好的做法,例如 Git。这可以在同一个存储库中,也可以在单独的存储库中。要在构建新映像后更新映像,请考虑使用yq。更新部署清单中的图像的示例yq命令(一行):

yq write --inplace  deployment.yaml 'spec.template.spec.containers(name==<myapp>).image' \
<my-registy-host>/<my-image-repository>/<my-image-name>:<my-tag-name>

如果我们有多个部署文件并且我们更改其中任何一个的任何图像。是否全部重新部署?

不,Kubernetes Yaml 是声明性的,因此它“了解”发生了什么变化,并且仅将必要的部署“驱动”到其“期望状态”——因为其他部署已经处于其“期望状态”。


推荐阅读