Docker Kubernetes 容器更新與回滾

Docker Kubernetes 容器更新與回滾nginx

環境:app

  • 系統:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:v1.8
  • 管理節點:192.168.1.79
  • 工做節點:192.168.1.78
  • 工做節點:192.168.1.77

建立環境:ide

  • 一、Deployment名稱:nginx-deployment
  • 二、pods副本數爲:3 
  • 三、image鏡像:nginx1.9

更新升級spa

方案一:管理節點:滾動升級鏡像。3d

kubectl set image deployment nginx-deployment nginx=nginx:1.11
kubectl set image 資源類型/資源名稱 容器名稱=鏡像版本
命令註解

方案二:管理節點:修改原yaml配置文件從新加載完成滾動升級code

kubectl apply -f nginx-deployment.yaml

管理節點:查看升級狀況orm

命令:kubectl describe deployment nginx-deployment

# 鏡像已更新
    Image:        nginx:1.11
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
# 擴容版本
  Normal  ScalingReplicaSet  24m   deployment-controller  Scaled up replica set nginx-deployment-845cfc7fb9 to 3
  Normal  ScalingReplicaSet  49s   deployment-controller  Scaled up replica set nginx-deployment-7ff5df4cfb to 1
# 縮容版本
  Normal  ScalingReplicaSet  34s   deployment-controller  Scaled down replica set nginx-deployment-845cfc7fb9 to 2
# 擴容版本
  Normal  ScalingReplicaSet  34s   deployment-controller  Scaled up replica set nginx-deployment-7ff5df4cfb to 2
# 縮容版本
  Normal  ScalingReplicaSet  18s   deployment-controller  Scaled down replica set nginx-deployment-845cfc7fb9 to 1
# 擴容版本
  Normal  ScalingReplicaSet  18s   deployment-controller  Scaled up replica set nginx-deployment-7ff5df4cfb to 3
# 縮容版本
  Normal  ScalingReplicaSet  15s   deployment-controller  Scaled down replica set nginx-deployment-845cfc7fb9 to 0
查看deployment鏡像升級描述信息
命令: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 rollout history deployment/nginx-deployment
deployments "nginx-deployment"
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
查看deployment歷史修訂版本
命令:kubectl rollout history deployment/nginx-deployment --revision=1

deployments "nginx-deployment" with revision #1
Pod Template:
  Labels:    app=nginx
    pod-template-hash=4017973965
  Containers:
   nginx:
    Image:    nginx:1.10
    Port:    80/TCP
    Environment:    <none>
    Mounts:    <none>
  Volumes:    <none>
查看指定歷史修訂版本

版本回滾blog

管理節點:回滾到上一個版本資源

kubectl rollout undo deployment nginx-deployment
kubectl rollout undo 資源類型 資源名稱
命令註解

管理節點:指定版本回滾hash

kubectl rollout undo deployment/nginx-deployment --to-revision=3
kubectl rollout undo 資源類型 資源名稱 --to-revision=版本號

注:kubectl rollout history 資源類型 資源名稱 查看的版本號。
命令註解

管理節點:查看回滾狀況

命令:kubectl rollout history deployment/nginx-deployment

deployments "nginx-deployment"
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
4         <none>
5         <none>
注:將還原版本覆蓋,並生成新的版本號。
查看deployment歷史修訂版本
相關文章
相關標籤/搜索