You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Kubernetes Deployment确保任意时刻仅运行单个进程实例

配置方案

你可以通过调整Deployment的发布策略参数实现需求,共有两种可行的配置方式:

方案1:使用Recreate发布策略(更直观适配需求)

Recreate策略的逻辑为更新时先全量销毁所有运行中的旧实例,待旧实例完全终止后再创建新实例,和你期望的手动发布流程完全一致,从根本上避免双实例同时运行的情况。
配置示例如下:

apiVersion: apps/v1
kind: Deployment
spec:
  # 新增以下策略配置
  strategy:
    type: Recreate
  # 其余原有配置保持不变
  replicas: 1
  template:
    # 你的Pod模板配置

方案2:调整默认RollingUpdate策略的参数

如果你需要保留滚动更新的策略类型,可以调整滚动更新的阈值参数,同样能满足需求:

  • maxSurge设置为0:更新过程中不允许超出期望副本数创建额外实例
  • maxUnavailable设置为1:更新过程中允许最多1个实例处于不可用状态
    配置后更新时会先销毁旧实例,再创建新实例,不会出现双实例共存的情况,配置示例如下:
apiVersion: apps/v1
kind: Deployment
spec:
  # 新增以下策略配置
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
  # 其余原有配置保持不变
  replicas: 1
  template:
    # 你的Pod模板配置

注意事项

  • 两种方案都会产生短时间的服务不可用,不可用窗口为旧实例完全终止到新实例启动就绪的耗时,符合你宁愿短时间停服也不允许双实例运行的要求
  • 建议合理配置terminationGracePeriodSeconds参数,保证旧实例的业务进程有足够时间完成优雅退出,避免极端场景下旧进程未完全终止就启动新实例的问题
  • 配置修改完成后直接更新你的deployment.yaml即可,后续自动执行kubectl apply发布时会自动遵循配置的策略执行,不需要调整现有发布流程

内容的提问来源于stack exchange,提问作者SDE 888

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 10:03:02