Pod中断预算 PodDisruptionBudget(PDB)
PodDisruptionBudget(PDB)是Kubernetes中的一个资源对象,用于确保在进行维护、升级或其他操作时,系统中的Pod不会被意外中断或终止。PDB提供了一种机制,通过限制在给定时间内可以中断的Pod数量,以确保系统的可用性和可靠性。
PDB有两个主要的属性:
minAvailable:指定在任何给定时间内必须保持可用的最小Pod数。这可以是一个绝对值,也可以是一个占集群中总Pod数的百分比。maxUnavailable:指定在任何给定时间内可以中断的最大Pod数。这同样可以是一个绝对值或一个百分比。
通过合理配置这两个属性,你可以确保在执行诸如节点维护、升级或缩容等操作时,有足够的Pod保持可用,从而避免服务中断。
以下是一个PodDisruptionBudget的示例YAML文件:
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: example-pdb
spec:
minAvailable: 2 # 至少保持2个Pod可用
selector:
matchLabels:
app: example # 选择带有app=example标签的Pod
在这个示例中,minAvailable被设置为2,意味着在任何时候至少有两个带有app=example标签的Pod必须保持可用。如果尝试中断超过这个数量的Pod,PDB将阻止这些中断操作。
PDB是Kubernetes中提高系统可用性和可靠性的重要工具,特别是在进行集群维护或升级时。通过合理配置和使用PDB,你可以减少因Pod中断而导致的服务中断风险。
Pod中断预算 PodDisruptionBudget(PDB)的更多相关文章
- kubernetes之pod中断
系列目录 目标读者: 想要构建高可用应用的应用所有者,因此需要知道pod会发生哪些类型的中断 想要执行自动化(比如升级和自动扩容)的集群管理员. 自愿和非自愿的中断 pod不会自动消息,除非有人(可能 ...
- 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致
打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...
- Kubernetes Scheduler浅析
概述 Kubernetes 调度器(Scheduler)是Kubernetes的核心组件:用户或者控制器创建Pod之后,调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被 ...
- Kubernetes的十大使用技巧
1. bash针对kubectl命令的自动补充这可能是在使用Kubernetes过程中最容易做的事,但它也是其中一个最有用的.要添加自动补充功能,如果使用bash,只需执行以下命令: echo &qu ...
- StatefulSet: Kubernetes 中对有状态应用的运行和伸缩
在最新发布的 Kubernetes 1.5 我们将过去的 PetSet 功能升级到了 Beta 版本,并重新命名为StatefulSet.除了依照社区民意改了名字之外,这一 API 对象并没有太大变化 ...
- 详细介绍:Kubernetes1.4版本的新功能
Kubernetes1.4主要新特性 创建kubernetes集群只需要两条命令 增强了对有状态应用的支持 增加了集群联盟API 支持容器安全控制 增强包括调度在内的Kubernetes基础架构 通过 ...
- 如何选出适合自己的管理Helm Chart的最佳方式?
本文转载自Rancher Labs 无论你喜欢与否,你都不得不承认Helm是管理Kubernetes应用程序独一无二的工具,你甚至可以通过不同的方式使用它. 在Helm的使用过程中,我们注意到有几个问 ...
- kubernetes之PDB
系列目录 上一节我们讲到了由于一些人为的或者不可避免的原因,pod可能会中断,而使用Pod Disruption Budget可以最大限度地保证在pod中断发生时集群仍然保持能够接受的状态. 一句话, ...
- Kubernetes自动横向伸缩集群节点以及介绍PDB资源
在kubernetes中,有HPA在需要的时候创建更多的pod实例.但万一所有的节点都满了,放不下更多pod了,怎么办?显然这个问题并不局限于Autoscaler创建新pod实例的场景.即便是手动创建 ...
- 图解kubernetes调度器抢占流程与算法设计
抢占调度是分布式调度中一种常见的设计,其核心目标是当不能为高优先级的任务分配资源的时候,会通过抢占低优先级的任务来进行高优先级的调度,本文主要学习k8s的抢占调度以及里面的一些有趣的算法 1. 抢占调 ...
随机推荐
- Java多线程-JUC-1(八)
前面把线程相关的生命周期.关键字.线程池(ThreadPool).ThreadLocal.CAS.锁和AQS都讲完了,现在就剩下怎么来用多线程了.而要想用好多线程,其实是可以取一些巧的,比如JUC(好 ...
- GoodSync(最好的文件同步软件)
GoodSync是一款使用创新的最好的文件同步软件,可以在你的台式机.笔记本.USB外置驱动器等设备直接进行数据文件同步软件. GoodSync将高度稳定的可靠性和极其简单的易用性完美结合起来,可以实 ...
- SqlDapperEasyUtil:.NET CORE下的Dapper封装操作类
之前介绍了基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,这个在.NET FX下还是比较好用的,现在都流行.NET CORE,故我这边再次进行精简修改,以便适应.NET ...
- 《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(中)
第 5 章 使用 Entity Framework Core 5.3 重构仓储类 创建一个通用仓储接口 namespace Library.API.Services { public interfac ...
- AT_arc125_c [ARC125C] LIS to Original Sequence 题解
题目传送门 前置知识 贪心 | 构造 解法 对于任意一个未加入序列 \(P\) 的数 \(x<A_{i}(1 \le i \le k-1)\),如果其放在了 \(A_{i}\) 的前面,会导致最 ...
- JS leetcode 多数元素 题解分析
壹 ❀ 引 做题做题,再忙每天都要抽空做一道题!今天来做一道有趣的题,题目来自多数元素,题目描述如下: 给定一个大小为 n 的数组,找到其中的多数元素.多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ ...
- NC50381 道路和航线
题目链接 题目 题目描述 FarmerJohn正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到T个城镇,编号为1到T.这些城镇之间通过R条道路(编号为1到R)和P条航线(编号为1到P)连 ...
- CORS就是跨域吗?
首先,跨域的域是什么? 跨域的英文是:Cross-Origin. Origin 中文含义为:起源,源头,出生地. 在跨域中,"域"指的是一个 Web 资源(比如网页.脚本.图片等) ...
- 【Android】使用 Broadcast 实现进程间通讯
1 Broastcast 简介 Broadcast(广播)是 Android 中一种广泛运用的在应用程序之间传输信息的机制.使用 Broadcast 能够很方便得实现进程间通讯,一端通过 send ...
- let与const
let与const ES2015(ES6)新增加了两个重要的JavaScript关键字: let和const. 块级作用域 代码块内如果存在let或者const,代码块会对这些命令声明的变量从块的开始 ...