使用 RC 实现自动滚动升级
先定义两个容器镜像 v1 和 v2 版本
1 | # v1 版本 |
1 | # v2 版本 区别在于返回的是 v2的信息 |
单个 yaml 运行 rc 和 service
1 | # 多种资源定义通过 --- 分割 |
1 | [root@k8s-master1 deployment]# kubectl get pods,svc |
RC 的滚动升级 rolling-update
1 | [root@k8s-master1 deployment]# kubectl rolling-update kubia-v1 kubia-v2 --image=172.31.228.68/game/kubia:v2 |
使用 Deployment 声明式升级应用
1 | 1. Deployment -> rs -> pod |
创建 Deployment
1 | [root@k8s-master1 deployment]# kubectl explain deployment |
升级 Deployment
1 | Deployment 有两种升级策略 |
减慢滚动升级速度
1 | # 用来测试查看观察升级过程 |
修改镜像 触发滚动升级
1 | [root@k8s-master1 demo]# while true;do curl http://10.0.0.119;sleep 1; done |
更新 ConfigMap
1 | # 如果 deployment 中的pod 引用了1个 ConfigMap(或Secret) |
回滚 Deployment
1 | # 先创建一个错误版本 v3 |
1 | # 升级 然后查看错误请求 |
1 | # 回滚升级 到之前的版本 |
控制滚动升级速率
1 | [root@k8s-master1 deployment]# kubectl edit deploy kubia |
暂停滚动升级 使用试探性发布
1 | # 假金丝雀发布 |
1 | # 先做一个最新版本 |
增加 就绪探针
1 | # 先全部回滚到v2版本 |
滚动升级时限
1 | [root@k8s-master1 deployment]# kubectl edit deploy kubia |
取消出错版本的滚动升级
1 | # 直接回滚到上一版本 |