0

0

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

月夜之吻

月夜之吻

发布时间:2025-10-18 13:08:02

|

402人浏览过

|

来源于php中文网

原创

自愿性中断指管理员或自动化流程主动触发的操作,如节点排空、升级或滚动更新,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 可用:

fortran语言语法 WORD版
fortran语言语法 WORD版

本文档主要讲述的是fortran语言语法;FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载
  • 最多允许 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 是保障运维操作期间服务稳定的关键机制,合理配置能避免误操作引发的服务雪崩。

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

28

2025.12.13

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

68

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

123

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

34

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

85

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Java 教程
Java 教程

共578课时 | 47.6万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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