创建 Deployment
kubectl create -f nginx-deployment.yaml
deployment.apps/nginx-deployment created
将kubectl的 --record 的 flag 设置为 true可以在 annotation 中记录当前命令创建或者升级了该资源。这在未来会很有用,例如,查看在每个 Deployment revision 中执行了哪些命令。
然后立即执行 get 将获得如下结果:
kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 3/3 3 3 34s
更新Deployment
kubectl apply -f nginx-deployment.yaml
扩容:
kubectl scale deployment nginx-deployment --replicas 10
如果集群支持 horizontal pod autoscaling 的话,还可以为Deployment设置自动扩展
kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
更新镜像也比较简单:
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
kubectl delete deployment nginx-deployment
kubectl create -f nginx-deployment.yaml --record
kubectl rollout status deployment/nginx-deployment
kubectl get rs
回滚到上一个版本:
kubectl rollout undo deployment/nginx-deployment
也可以使用 --revision参数指定某个历史版本:
kubectl rollout undo deployment/nginx-deployment --to-revision=2
deployment "nginx-deployment" rolled back
历史记录
kubectl rollout history deployment/nginx-deployment
REVISION CHANGE-CAUSE
1 kubectl create -f nginx-deployment.yaml --record
2 kubectl edit deployment/nginx-deployment
3 kubectl set image deployment/nginx-deployment nginx=nginx:1.91
创建 Deployment 的时候使用了–record参数可以记录命令,我们可以很方便的查看每次 revision 的变化。
查看单个revision 的详细信息:
kubectl rollout history deployment nginx-deployment --revision=1