作者信息:https://home.cnblogs.com/u/huangjiabobk

在k8S中,deployment升级策略是什么?

在Kubernetes (k8s) 中,Deployment 的升级策略主要指的是在更新 Pod 副本以部署新的容器镜像或配置时所采用的方法。主要有两种内置的升级策略:

  1. 滚动更新(RollingUpdate)

    • 这是 Deployment 默认使用的升级策略。
    • 在滚动更新中,Deployment 控制器会按批次替换现有的 Pod,每次只替换一部分(由 .spec.strategy.rollingUpdate.maxUnavailablemaxSurge 控制),确保在升级过程中始终有一定数量的可用Pod服务于客户端请求,从而实现*乎*滑的服务过渡。
    • 用户可以自定义每次升级时最多可以同时不可用的Pod数量以及一次可以额外创建的新Pod数量。
  2. 重启升级(Recreate)

    • .spec.strategy.type 设置为 Recreate 时,Deployment 将采取这种策略。
    • 使用此策略时,Deployment 先会停止所有旧的 Pod 副本,等到所有旧副本都终止后,再一次性创建出新的 Pod 副本。
    • 此策略会导致服务中断,因为新旧Pod会在一段时间内没有同时在线,适用于能够容忍短暂服务不可用或无状态的应用程序。

综上所述,虽然不是严格意义上的升级策略,但在进行实际升级操作时,还可以选择临时暂停升级(Pause),这允许用户通过设置 .spec.pausedtrue 来暂停一个正在进行的Deployment升级,以便在特定条件下恢复升级过程。

posted @ 2024-02-09 18:25  黄嘉波  阅读(87)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波