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

如何在Azure Kubernetes中单独启停StatefulSet的指定Pod?

针对AKS中StatefulSet单Pod关停与重启的操作方案(完全可行)

核心思路

Kubernetes支持单独关停StatefulSet中的指定Pod且不影响其他副本,关键是要避免StatefulSet控制器自动重建被删除的Pod,待磁盘操作完成后再触发重建逻辑。

操作步骤

方法一:快速关停并隔离目标Pod

  1. 关停database-1并阻止自动重建
    执行以下命令删除Pod,同时切断StatefulSet与该Pod的关联,避免自动重建:
kubectl delete pod database-1 --cascade=orphan

此时database-1会被立即终止,database-0和database-2不受任何影响,StatefulSet不会触发重建流程。

  1. 执行磁盘修改操作
    现在可以对database-1绑定的Azure磁盘进行扩容、性能调整等操作(注意:Azure Disk需在未挂载状态下才能执行部分修改,此状态正好满足要求)。

  2. 重启database-1
    磁盘操作完成后,让StatefulSet重新创建database-1:

kubectl scale statefulset database --replicas=3

StatefulSet会自动识别缺失的database-1 Pod,基于原模板创建并关联原有的持久化磁盘。

方法二:暂停控制器实现更可控操作

如果需要更严谨的流程,可先暂停StatefulSet控制器:

  1. 暂停StatefulSet控制器
kubectl patch statefulset database -p '{"spec":{"paused":true}}'

此时StatefulSet不会进行任何自动扩缩容或重建操作。

  1. 关停database-1
kubectl delete pod database-1
  1. 执行磁盘修改操作

  2. 恢复控制器并重建Pod

kubectl patch statefulset database -p '{"spec":{"paused":false}}'

StatefulSet会自动重建database-1 Pod并关联原有磁盘。

重要提示

  • 操作前务必确认数据库集群的高可用机制正常,确保关停database-1后剩余两个节点能稳定提供服务。
  • 部分Azure Disk操作(如扩容)需要磁盘处于未挂载状态,此操作流程正好满足该条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 19:31:09