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

如何停止运行中的AKS Pod并在一段时间后将其重启

AKS Pod 停止与延时重启操作指南

操作前先执行以下命令确认目标Pod的所属控制器、所在命名空间信息,避免误操作:
kubectl get pods -A | grep <目标Pod名称关键字>
记录返回结果中的命名空间(NAMESPACE列)、Pod全名、所属控制器(OWNER列)信息,再根据场景选择对应操作方式。


方式一:调整工作负载副本数(最推荐,无业务闪断风险)

该方式适用于被Deployment、StatefulSet等支持副本调整的控制器管理的Pod,不会触发控制器自动立刻重建Pod,能精准控制停止时长:

  • 第一步:将对应工作负载的副本数调整为0,终止所有关联运行中的Pod:
    # 操作Deployment类型工作负载
    kubectl scale deployment <控制器名称> -n <Pod所在命名空间> --replicas=0
    
    # 如果是StatefulSet类型,替换资源类型即可
    # kubectl scale statefulset <控制器名称> -n <Pod所在命名空间> --replicas=0
    
    执行后可通过kubectl get pods -n <命名空间>确认Pod已完全终止。
  • 第二步:等待你需要的间隔时长后,将副本数调整为业务原本的副本数值,Pod会自动重新创建启动:
    kubectl scale deployment <控制器名称> -n <Pod所在命名空间> --replicas=<原业务副本数>

方式二:直接删除Pod(适用于裸Pod或允许自动重建的场景)

  • 如果目标Pod是没有绑定任何控制器的裸Pod:
    1. 执行删除命令即可终止运行中的Pod:
      kubectl delete pod <Pod全名> -n <Pod所在命名空间>
    2. 等待间隔时长结束后,使用原Pod的YAML配置文件重新创建即可完成重启:
      kubectl apply -f <原Pod配置文件本地路径>
  • 如果目标Pod受控制器管理,且你不需要控制重建间隔,直接执行删除命令后,控制器会在数秒内自动拉起新的Pod替代被删除的实例,无法实现延时启动效果。

方式三:标签隔离法(适用于仅需停止单个Pod、不调整整体副本数的场景)

如果你的业务通过Service标签匹配后端Pod,可通过调整标签实现单个Pod的临时下线:

  1. 移除目标Pod上Service匹配的业务标签,切断流入该Pod的流量,同时打上临时标记:
    kubectl label pod <Pod全名> -n <Pod所在命名空间> <业务标签key>- temp-status=offline
    (命令中标签key后的减号代表删除该标签)
  2. 确认流量完全切走后删除目标Pod,此时因为Pod标签已经不匹配控制器的标签选择器,控制器不会立刻重建该实例:
    kubectl delete pod <Pod全名> -n <Pod所在命名空间>
  3. 间隔指定时长后,重新创建Pod并恢复原有业务标签,即可将Pod重新接入业务流量。

注意:禁止直接登录AKS节点用容器运行时命令(比如docker rm、crictl stop)杀容器,Kubernetes会判定容器异常退出,按照Pod配置的重启策略立刻拉起容器,无法达到延时启动的效果。


内容的提问来源于stack exchange,提问作者Ehsan Ellahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:46:01