kubectl rollout 命令对于管理 Kubernetes 中应用程序的部署至关重要。它能让你有效地启动、监控和还原部署。
下面的示例演示了如何使用 kubectl rollout 管理部署,包括如何在需要时回滚到以前的版本。
【代码清单】
# Create a simple deployment
kubectl create deployment my-app --image=nginx:1.14
# Check the rollout status
kubectl rollout status deployment/my-app
# Update the deployment to a new image
kubectl set image deployment/my-app nginx=nginx:1.16
# Check the rollout status again
kubectl rollout status deployment/my-app
# Rollback to the previous version
kubectl rollout undo deployment/my-app
【执行结果】
deployment.apps/my-app created
Waiting for rollout to finish: 0 out of 1 new replicas have been updated...
deployment "my-app" successfully rolled out
Waiting for rollout to finish: 1 out of 1 new replicas have been updated...
deployment "my-app" successfully rolled out
Rollback to deployment "my-app" completed
kubectl create deployment 命令使用指定的映像初始化新的部署。kubectl rollout status 命令会检查部署的状态,确保部署已成功推出。使用 kubectl set image 更新部署时,可以指定新的映像版本。如果更新没有达到预期效果,可以使用 kubectl rollout undo 恢复到之前的版本。
【小知识】
Rollout History(部署历史): Kubernetes 会维护您的部署历史,让您可以查看以前的版本,并在需要时进行回滚。
Deployment Strategy(部署策略): 默认情况下,Kubernetes 使用滚动更新策略,逐步用新的 pod 替换旧的 pod,以尽量减少停机时间。
Monitoring Rollouts(监控推出): 你可以通过 Kubernetes 控制面板或使用 kubectl get pods 监控推出过程,查看单个 pod 的状态。