当前,我正在尝试使用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
命令。
我的困惑是,
kubectl apply
命令来更新现有部署吗? kubectl rollout restart
?对于CI / CD管道实施中的连续部署过程,在对SVN存储库进行提交时,我需要在Jenkinsfile中使用哪个命令来更新部署?
答案 0 :(得分:2)
只要部署和服务文件中的资源名称未更改,就可以使用Kubectl apply命令。在Kubernetes book中,
Apply是将更新Kubernetes集群以使其匹配的命令 状态在文件中本地定义。
kubectl apply
完全声明性的-无需指定创建或更新-只需 管理文件
与滚动部署相关的参数,例如应该使用多少个Pod,以及可以从活动部署中取出多少个Pod,可以检查this documentation。