什么是 Kubernetes 的 Pod 中断预算如何工作?

月夜之吻
发布: 2025-10-18 13:08:02
原创
372人浏览过
自愿性中断指管理员或自动化流程主动触发的操作,如节点排空、升级或滚动更新,PDB通过设定minAvailable或maxUnavailable来限制此类操作中可中断的Pod数量,确保服务最低可用性,但不防护节点故障等非自愿中断。

什么是 kubernetes 的 pod 中断预算如何工作?

Kubernetes 的 Pod 中断预算(Pod Disruption Budget,简称 PDB)用于确保在自愿性中断(如节点维护、集群升级或滚动更新)期间,应用仍能保持足够的可用副本数。它的核心作用是防止应用因人为操作导致服务不可用。

什么是自愿性中断?

自愿性中断是指由管理员或自动化流程主动触发的操作,比如:

  • 使用 kubectl drain 排空节点进行维护
  • 执行节点升级或重启
  • 应用 Deployment 的滚动更新

这些操作可能会删除 Pod,而 PDB 能控制在此类场景下,最多允许多少 Pod 被同时中断。

Pod 中断预算如何工作?

PDB 通过设置一个最小可用 Pod 数量或最大允许不可用数量,来限制控制器(如 Deployment、StatefulSet)在中断期间可以删除的 Pod 数量。

当执行如 kubectl drain 这类操作时,驱逐 API 会检查对应工作负载是否配置了 PDB。如果有,调度器会验证驱逐后是否仍能满足 PDB 的约束。如果不满足,该操作会被拒绝或暂停。

算家云
算家云

高效、便捷的人工智能算力服务平台

算家云37
查看详情 算家云

例如,假设你有一个 5 个副本的应用,设置 PDB 要求至少 3 个 Pod 可用:

  • 最多允许 2 个 Pod 被中断
  • 在节点排空时,系统只会批准不影响最低可用性的驱逐请求

如何配置 PDB?

PDB 通过 YAML 定义,关键字段包括 minAvailablemaxUnavailable,二者选其一:

示例 1:保证至少 3 个 Pod 可用
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: my-pdb
spec:
  minAvailable: 3
  selector:
    matchLabels:
      app: my-app
登录后复制
示例 2:最多允许 1 个 Pod 不可用(适用于 3 副本)
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      app: my-app
登录后复制

selector 用于匹配受保护的 Pod,通常与 Deployment 的标签一致。

非自愿中断不受 PDB 保护

需要注意的是,PDB 只对自愿性中断有效。如果是节点崩溃、网络故障或 kubelet 崩溃等非自愿中断,PDB 不起作用。这类情况需要依赖副本机制和健康检查来恢复服务。

基本上就这些。PDB 是保障运维操作期间服务稳定的关键机制,合理配置能避免误操作引发的服务雪崩。

以上就是什么是 Kubernetes 的 Pod 中断预算如何工作?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号