Kubernetes 支持无缝升级。
查看正在运行的 pod :
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-bootcamp-5c69669756-8v5nx 0/1 Pending 0 6s
kubernetes-bootcamp-5c69669756-cjfvn 0/1 Pending 0 6s
kubernetes-bootcamp-5c69669756-shcr9 0/1 Pending 0 6s
kubernetes-bootcamp-5c69669756-wwrh7 0/1 Pending 0 6s
查看当前 pod 中运行的 image 的版本:
$ kubectl describe pods
// 返回结果中有容器信息
把 image 版本更新到 v2:
$ kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
这个命令通知 deployment 使用不同的 image,并初始化动态更新任务。
查看新 pod:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-bootcamp-7799cbcb86-2b7sz 1/1 Running 0 47s
kubernetes-bootcamp-7799cbcb86-76bcb 1/1 Running 0 49s
kubernetes-bootcamp-7799cbcb86-7p42l 1/1 Running 0 47s
kubernetes-bootcamp-7799cbcb86-h6jbz 1/1 Running 0 49s
可以看到 pod 已经都变了。
查看更新状态:
$ kubectl rollout status deployments/kubernetes-bootcamp
deployment "kubernetes-bootcamp" successfully rolled out
查看 pod 详情,看其中的容器信息是否已经变为新版 image:
$ kubectl describe pods
如果错线错误,可以回滚:
$ kubectl rollout undo deployments/kubernetes-bootcamp
网友评论