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

月夜之吻
发布: 2025-10-18 13:08:02
原创
386人浏览过
自愿性中断指管理员或自动化流程主动触发的操作,如节点排空、升级或滚动更新,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 的约束。如果不满足,该操作会被拒绝或暂停。

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

算家云
算家云

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

算家云 37
查看详情 算家云
  • 最多允许 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
随时随地碎片化学习

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