Docker Kubernetes 容器更新與回滾nginx
環境:app
建立環境:ide
更新升級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
命令: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>
命令: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> 注:將還原版本覆蓋,並生成新的版本號。