【云原生之k8s】K8s 管理工具 kubectl 详解(三)


在这里插入图片描述

金丝雀发布/灰度发布(Canary Release)

1、金丝雀发布简介

Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,在筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。

2、更新deployment的版本,并配置暂停deployment

2.1 创建pods

kubectl create deployment nginx-test --image=nginx:1.14 --replicas=3
kubectl get pods,deploy -o wide

在这里插入图片描述

2.2 发布服务

kubectl expose deploy nginx-test --port=80 --target-port=80 --name=nginx-service --type=NodePort
kubectl get svc -o wide

在这里插入图片描述

2.3 查看nginx版本

curl -I 192.168.109.11:31811
kubectl describe deployment nginx-test | grep Image

在这里插入图片描述

2.4 定义版本change-cause

2.4.1 查看历史版本

在不定义CHANGE-CAUSE的情况下,缺省值为,当历史版本较多时,不便于咱们回滚时辨认版本号。因此,建议定义CHANGE-CAUSE为服务版本以帮助咱们辨认当前服务。

kubectl rollout history deploy/nginx-test

在这里插入图片描述

2.4.2 定义版本

一般通过修改配置的方式定义change-cause

[root@master ~]# kubectl edit deploy/nginx-test

......
kind: Deployment
metadata:
  annotations:
#下行可定义历史版本revision
    deployment.kubernetes.io/revision: "1"
#在Deployment的matadata项下的annotations中如下行定义change-cause
    kubernetes.io/change-cause: "nginx1.14"
......

在这里插入图片描述

2.4.3 再次查看历史版本

kubectl rollout history deploy/nginx-test

在这里插入图片描述

2.4.4 更新nginx版本为1.15并配置暂停

kubectl set image deploy/nginx-test nginx=nginx:1.15 && kubectl rollout pause deploy/nginx-test

在这里插入图片描述

2.4.5 观察更新状态

kubectl rollout status deploy/nginx-test

在这里插入图片描述

2.4.6 监控更新的过程

可以看到已经新增了一个pod,但是并未按照预期的状态去删除一个旧的资源,就是因为使用了pause暂停命令

kubectl get pods -w

在这里插入图片描述

2.4.7 查看nginx版本

kubectl get pod -o wide

在这里插入图片描述

2.4.8 查看并更新历史版本change-cause

kubectl rollout history deploy/nginx-test

在这里插入图片描述

[root@master ~]# kubectl edit deploy/nginx-test

kind: Deployment
metadata:
  annotations:
#下行的revison自动更新为2
    deployment.kubernetes.io/revision: "2"
#修改下行的change-cause为nginx1.15
    kubernetes.io/change-cause: nginx1.15

在这里插入图片描述
在这里插入图片描述

2.4.9 resume继续更新

测试新版本没问题继续更新

kubectl rollout resume deploy/nginx-test

在这里插入图片描述

2.4.10 查看最后的更新情况

kubectl get pods -w

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雪一更ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值