背景
- 在日常开发特别是测试过程中,由于发布版本经常需要对pods进行升级,由于是采用Deployment的方式部署,则本身就支持RollingUpdate的方式来进行滚动升级了
滚动升级命令
- 先查看deployment下都部署哪些pods:kubectl -n <namespace> get deployment
- 执行滚动升级:kubectl -n <namespace> set image deployment/<deployment_name> <name>=<image>,其中name和image是定义在你的yaml文件中的spec.containers.name和spec.containers.image
- 执行后就看到老的pods任务变成Terminating,等新的pods PodInitializing成功后即可服务
回滚命令介绍
- 查看image的回滚列表:kubectl -n <namespace> rollout history deployment/<deployment_name>,比如可以看到以下的历史版本清单:
REVISION CHANGE-CAUSE
2 <none>
3 <none>
-查看image的详情:kubectl -n <namespace> rollout history deployment/<deployment_name> --revision=2
-回滚到对应image: kubectl -n <namespace> rollout undo deployment/<deployment_name> --to-revision=1
关于更新
- 常用部署方式如滚动发布/蓝绿部署/金丝雀部署(灰度)
- 其中金丝雀部署可见文章:https://kuboard.cn/learning/k8s-intermediate/workload/wl-deployment/canary.html
网友评论