打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
k8s笔记013-Deployment升级

1. 创建一个nginx 1.7.9的Deployment文件
[root@k8s-master01 kubeguide]# vim nginx-deployment.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
2. 创建Deployment
[root@k8s-master01 kubeguide]# kubectl create -f nginx-deployment.yaml
3. 编辑nginx-deployment,修改image为nginx 1.9.1
[root@k8s-master01 kubeguide]# kubectl edit deployment/nginx-deployment
deployment "nginx-deployment" edited
4. 实时查看滚动升级状态
[root@k8s-master01 kubeguide]# kubectl rollout status deployment/nginx-deployment
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 old replicas are pending termination...
Waiting for rollout to finish: 1 old replicas are pending termination...
deployment "nginx-deployment" successfully rolled out
也可以使用kubectl describe命令查看详细情况
[root@k8s-master02 ~]# kubectl rollout history deployment/nginx-deployment
deployments "nginx-deployment"
REVISION CHANGE-CAUSE
1 <none>
2 <none>
3 <none>

[root@k8s-master02 ~]# kubectl describe deployment/nginx-deployment
Name: nginx-deployment
Namespace: default
CreationTimestamp: Sat, 30 Sep 2017 11:07:37 +0800
Labels: name=nginx
Annotations: deployment.kubernetes.io/revision=3
Selector: name=nginx
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: name=nginx
Containers:
nginx:
Image: nginx:1.9.1
Port: 80/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-257691233 (3/3 replicas created)
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
1h 1h 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1969926507 to 3
11m 11m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2946790570 to 1
11m 11m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1969926507 to 2
11m 11m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2946790570 to 2
11m 11m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1969926507 to 1
11m 11m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2946790570 to 3
11m 11m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1969926507 to 0
10m 10m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-257691233 to 1
7m 7m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2946790570 to 2
7m 7m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-257691233 to 2
4m 1m 3 deployment-controller Normal ScalingReplicaSet (combined from similar events): Scaled down replica set nginx-deployment-2946790570 to 0
[root@k8s-master02 ~]# kubectl get rs
NAME DESIRED CURRENT READY AGE
my-nginx-4293833666 2 2 2 17d
nginx-4217019353 1 1 1 17d
nginx-deployment-1969926507 0 0 0 1h
nginx-deployment-257691233 3 3 3 10m
nginx-deployment-2946790570 0 0 0 11m
5. Deployment回滚
5.1 查看升级历史记录
[root@k8s-master02 ~]# kubectl rollout history deployment/nginx-deployment
deployments "nginx-deployment"
REVISION CHANGE-CAUSE
1 <none>
2 <none>
3 <none>
这里CHANGE-CAUSE,只有在创建Deployment时带上--record参数,就可以在CHANGE-CAUSE中看到每次创建和升级Deployment的详细命令
如果要看上面某个记录的详细信息,可以使用--revision
[root@k8s-master02 ~]# kubectl rollout history deployment/nginx-deployment --revision=2
deployments "nginx-deployment" with revision #2
Pod Template:
Labels: name=nginx
pod-template-hash=2946790570
Containers:
nginx:
Image: nginx
Port: 80/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
5.2 回滚到revision=2
[root@k8s-master02 ~]# kubectl rollout undo deployment/nginx-deployment --to-revision=2
deployment "nginx-deployment" rolled back
5.3 查看回滚状态
[root@k8s-master02 ~]# kubectl rollout status deployment/nginx-deployment
deployment "nginx-deployment" successfully rolled out
[root@k8s-master02 ~]# kubectl describe deployment/nginx-deployment
Name: nginx-deployment
Namespace: default
CreationTimestamp: Sat, 30 Sep 2017 11:07:37 +0800
Labels: name=nginx
Annotations: deployment.kubernetes.io/revision=4
Selector: name=nginx
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: name=nginx
Containers:
nginx:
Image: nginx
Port: 80/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-2946790570 (3/3 replicas created)
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
1h 1h 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1969926507 to 3
16m 16m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2946790570 to 1
16m 16m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1969926507 to 2
16m 16m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1969926507 to 1
16m 16m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1969926507 to 0
15m 15m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-257691233 to 1
12m 12m 1 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-257691233 to 2
12m 12m 1 deployment-controller Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2946790570 to 2
47s 47s 1 deployment-controller Normal DeploymentRollback Rolled back deployment "nginx-deployment" to revision 2
16m 44s 2 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2946790570 to 2
16m 42s 2 deployment-controller Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2946790570 to 3
9m 38s 7 deployment-controller Normal ScalingReplicaSet (combined from similar events): Scaled down replica set nginx-deployment-257691233 to 0
6. 暂停和恢复Deployment升级
6.1 暂停使用rollout pause
[root@k8s-master01 kubeguide]# kubectl rollout pause deployment/nginx-deployment
6.2 恢复使用rollout resume
[root@k8s-master01 kubeguide]# kubectl rollout resume deployment/nginx-deployment

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Kubernetes对象之Deployment(重要)
容器编排系统k8s之ReplicaSet和Deployment控制器
kubernetes画像(3) - kubectl
『中级篇』k8s重要的Deployment(64) – IT人故事会
图文说明:必须了解K8S部署的debug思路
Kubernetes 运维学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服