在 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
命令。
这里我的困惑是,
- 我可以使用
kubectl apply
命令来更新现有部署吗?
- 或者我需要使用命令
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。
目前我正在尝试使用 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
命令。
这里我的困惑是,
- 我可以使用
kubectl apply
命令来更新现有部署吗? - 或者我需要使用命令
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。