k8s滚动发布使用

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

原文地址:https://www.cnblogs.com/ExMan/p/13721141.html