在 CI/CD 管道实施中管理 Kubernetes 部署的创建和更新

Managing Create & Update of Kubernetes Deployment in CI/CD pipeline Implementation

目前我正在尝试使用 SVN、Kubernetes 和 Jenkins 为 CI/CD 管道实施演示。对于 kubernetes 部署,我创建了 deployment 和 services.And 来进行部署 我在 Jenkins 部署步骤中使用 kubectl apply -f 命令进行部署。

喜欢下面的,

stage ('Test Deployment')
        {
             steps
                {
                    sh 'kubectl apply -f deployment/testdeployment.yaml'
                    sh 'kubectl apply -f deployment/testservice.yaml'
                }
        }

和服务。

对于我的 SVN 存储库的每次提交都会触发此 jenkins 管道作业并执行命令。修改代码中的任何更改后,正在执行相同的 kubectl apply 命令。

这里我的困惑是,

  1. 我可以使用 kubectl apply 命令来更新现有部署吗?
  2. 或者我需要使用命令 kubectl rollout restart ?

对于 CI/CD 管道实施中的持续部署过程,当提交到 SVN 存储库时,我需要在我的 Jenkinsfile 中使用哪个命令来更新部署?

只要部署和服务文件中的资源名称没有改变,就可以使用kubectl apply命令。来自Kubernetes book,

Apply is a command that will update a Kubernetes cluster to match state defined locally in files.

kubectl apply

Fully declarative - don't need to specify create or update - just manage files

与滚动部署相关的参数,例如应该有多少 pods 以及可以从活动部署中取出多少,您可以查看 this documentation