Deployment为Pod和Replica Set提供声明式更新,并维持期望状态。
spec:
...
minReadySeconds: 100 # 这里需要估一个比较合理的值,从容器启动到应用正常提供服务
strategy: # k8s 默认的 strategy 就是 RollingUpdate, 这里写明出来可以调节细节参数
type: RollingUpdate
rollingUpdate:
maxSurge: 1 # 更新时允许最大激增的容器数,默认 replicas 的 1/4 向上取整
maxUnavailable: 0 # 更新时允许最大 unavailable 容器数,默认 replicas 的 1/4 向下取整
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
命令行用patch修改配置
kubectl patch deployment nginx-test -p ‘{“spec”:{“minReadySeconds”:30}}’ -n test
修改镜像并打记录,便于回滚指定版本
kubectl set image deployment/nginx-test nginx=nginx:1.15 --record=true --namespace=test
查看发布历史
kubectl rollout history deployment/nginx-test -n test
回滚上一版本
kubectl rollout undo deployment/nginx-test -n test
回滚指定版本
kubectl rollout undo deployment nginx-test --to-revision=13 -n test
将资源标记为暂停
kubectl rollout pause deployment/nginx-test -n test
查看资源的状态
kubectl rollout status deployment/nginx-test -n test
恢复已暂停的资源
kubectl rollout resume deployment/nginx-test -n test