1. 程式人生 > >Docker Kubernetes 容器更新與回滾

Docker Kubernetes 容器更新與回滾

Docker Kubernetes 容器更新與回滾

環境:

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

建立環境:

  • 1、Deployment名稱:nginx-deployment
  • 2、pods副本數為:3 
  • 3、image映象:nginx1.9

更新升級

方案一:管理節點:滾動升級映象。

kubectl set image deployment nginx-deployment nginx=nginx:1.11
kubectl set image 資源型別/資源名稱 容器名稱=映象版本
命令註解

方案二:管理節點:修改原yaml配置檔案重新載入完成滾動升級

kubectl apply -f nginx-deployment.yaml

管理節點:檢視升級情況

命令: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>
檢視指定歷史修訂版本

版本回滾

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

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

管理節點:指定版本回滾

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歷史修訂版本