k8s滚动升级_k8s连载---资源类型之控制器Deployments

Deployment一个Deployment控制器为Pods和ReplicaSets提供描述性的更新方式。

示列

31850c0236aa01d023ad62b921f75aa9.png

Deployment的定义除了kind的类型区别同RS没区别。那么为什么在有RS的基础上,还要继续产生这样一个新的控制器的概念。其实是一次RS的升级,相比于RS,它可以更好的支持 滚动升级,以及升级会退

kubectl rollout命令介绍

rollout用来管理可回滚资源,可回滚资源有deployments daemonsets statefulsets,所以rollout其实这种可回滚资源的代称可以理解为。

$ kubectl rollout SUBCOMMAND

其中SUBCOMMAND 经常使用的有histroy pause/resume restart status undo等

kubectl rollout history (TYPE NAME | TYPE/NAME) [flags] 查看资源历史状态修改。

kubectl rollout pause/resume RESOURCE 暂停恢复资源,只支持deployments

kubectl rollout status (TYPE NAME | TYPE/NAME) [flags] 显示资源创建状态。

创建,更新,回滚

创建

kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml

运行kubectl get deployments以检查 Deployment 是否已创建。如果仍在创建 Deployment ,则输出以下内容:

NAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3         0         0            0           1s

运行kubectl rollout status deployment.v1.apps/nginx-deployment

Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
deployment.apps/nginx-deployment successfully rolled out

更新

敏捷开发过程中,业务镜像是不断变化的,这就需要需要资源控制器能够提供升级镜像的方式

1.使用命令行

 kubectl  set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1

2.可通过编辑yaml文件,手动修改镜像为ngix:1.9.1

Deployment 可确保在更新时仅关闭一定数量的 Pods。默认情况下,它确保至少 75%所需 Pods 运行(25%最大不可用)。也就说假如副本数量为3的话,同时最多只能有一个新奖项pod的产生。

回滚

当我们发现新镜像业务问题或者配置文件修改错误,那么这个时候其实Deployment是可用的,只不过达到期待副本数量,参考上方75%原则。

1.查看所有历史状态修改

kubectl rollout history deployment/nginx-deployment

输出

deployments "nginx-deployment"
REVISION    CHANGE-CAUSE
1           kubectl apply --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml --record=true
2           kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
3           kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.91 --record=true

2.查看特定revesion状态

kubectl rollout history deployment/nginx-deployment --revision=2

3.撤销更新

如果是最近一次的修改

kubectl rollout undo deployment.v1.apps/nginx-deployment

会滚到特定版本

kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值