目前我正在尝试使用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 repo的每次提交,都会触发这个jenkins管道作业并执行命令。在修改代码中的任何更改后,将执行相同的kubectl apply
命令。
我的困惑是,
- 我可以使用
kubectl apply
命令来更新现有部署吗 - 或者我需要使用命令
kubectl rollout restart
吗
对于CI/CD管道实现中的连续部署过程,当提交到SVN存储库时,我需要在Jenkinsfile中使用哪个命令来更新部署?
只要部署和服务文件中的资源名称没有更改,就可以使用Kuectl apply命令。来自Kubernetes的书,
Apply是一个命令,它将更新Kubernetes集群以匹配在文件中本地定义的状态。
kubectl apply
完全声明性-不需要指定创建或更新-只需管理文件
与滚动部署相关的参数,例如应该有多少pod可用,以及可以从活动部署中取出多少pod,您可以查看此文档。