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

时间:2019-10-31 08:44:13

标签: kubernetes continuous-deployment

当前,我正在尝试使用SVN,Kubernetes和Jenkins为CI / CD管道实现演示。对于kubernetes部署,我创建了部署和服务。为进行部署,我在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中使用哪个命令来更新部署?

1 个答案:

答案 0 :(得分:2)

只要部署和服务文件中的资源名称未更改,就可以使用Kubectl apply命令。在Kubernetes book中,

  

Apply是将更新Kubernetes集群以使其匹配的命令   状态在文件中本地定义。

kubectl apply
     

完全声明性的-无需指定创建或更新-只需   管理文件

与滚动部署相关的参数,例如应该使用多少个Pod,以及可以从活动部署中取出多少个Pod,可以检查this documentation