千家信息网

kubernetes中断预算的实现原理是什么

发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,kubernetes中断预算的实现原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.1 驱逐到底是什么驱逐这个概念在k8s中个
千家信息网最后更新 2025年02月16日kubernetes中断预算的实现原理是什么

kubernetes中断预算的实现原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。


1.1 驱逐到底是什么

驱逐这个概念在k8s中个人理解有两种场景:apiserver端的Pod驱逐接口和kubelet里面的驱逐管理器,两者虽然都有类似的evictPod的操作,但本质上却根本不是一个东西, 在kubelet里面的驱逐最终会调用runtime来kill掉正在运行的容器, 而apiserver端的接口则是直接在etcd里面删除对应的Pod, 也是PDB真正起作用的地方, 本文后面的驱逐都是指的apiserver端的接口

1.2 Drain

drain是k8s用于维护节点扩容的时候的一个命令,事实上默认在k8s中也就只有该命令会进行驱逐接口的调用了

1.3 Pod中断预算

Pod中断预算名字很直白但看介绍是真复杂, 其实简单来说可以分为两部分:中断和预算,预算其实很容易理解,就跟大家平常花钱一样,有多少预算买多少钱的东西,这里的预算也是一样,不过这里的预算是你可以进行操作的数量,比如你允许某个资源的最多10%的Pod宕机,它就会根据你当前的状态和你的预算来计算出,你可以中断多少机器那什么是中断呢?答案就是删除对应的操作其实就是删除对应的Pod, 整合在一起其实就是根据你当前的状态计算出你可以进行删除Pod操作的数量

好了基础概念就介绍到这里,下面开始其实现的探索

2. 核心实现

2.1 PDB的计算数据

我们上面提到了PDB的本质就是计算允许进行删除操作的数量,那要进行这种计算需要那些数据呢?首先我们需要一个PDB(预算),然后我们需要当前Pod的状态(通过selector)这部分是不是够了呢?答案肯定不是,还缺什么呢?就是我们上面提到的total,即该Pod当前集群中期望有几个,如何获取呢?其实这个对应的就是对应的上层资源,比如Deployment、ReplicaSet、StatefulSet等,我们需要渠道对应上层资源期望的Pod的数量,也就是我们的total

2.2 上层资源的关联

那么如何我才能知道我Pod的管理的上层控制器具体是谁呢?答案其实就是Controlled By字段我们可以获取对应的ownerReferences这样我们就可以知道上层的控制器是谁,然后我们就可以从对应控制器字段里面取出对应的期望的数量

2.3 中断有效时间

中断有效时间这个名字我感觉很贴切,官方的名字叫DeletionTImeout,因为在k8s里面控制器和apiserver是可以分开的两个组件,上面我提到了驱逐接口会接收到驱逐请求,那怎么把这种驱逐的Pod传递给PDB呢因为他要计算还可以继续驱逐多少,除了当前的Pod和期望的Pod数量之外,也肯定需要知道当前还可以继续已经被中断(正在进行驱逐的)的数量

如果因为集群的不稳定造成PDB过了很久才收到这条消息,实际上对应的请求可能早就已经失效了,则对应的被驱逐的Pod实际上并没有被驱逐计算的时候还依旧将其计算在内,则可能会影响后续的驱逐操作,所以为了解决这种延迟和不同步问题,才有了中断有效时间,默认是2分钟,过期后就会自动删除,并且计算的时候就会跳过该Pod

2.4 整体实现大揭秘

控制整体实现分为如下几个大的步骤:1.用户定义PDB要保护的资源2.controller感知资源然后计算PDB对应的数据3.eviction接口接收到驱逐请求后,检测PDB是否允许,如果允许就更新中断的Pod到PDB的DisruptedPods字段中4.PDB感知到更新之后,重新进行计算更新PDB,这样eviction下次接收到驱逐请求之后就可以使用,反反复复


看完上述内容,你们掌握kubernetes中断预算的实现原理是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

预算 就是 数量 接口 资源 上层 控制 控制器 有效 名字 字段 数据 时候 时间 状态 端的 答案 问题 更新 期望 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 第3章 网络安全管理技术 大地期货公司有自己的服务器么 最大商业数据库 湖南一站式网络技术服务供应商家 数据库高效查询技术 工厂管理系统数据库设计er图 怎样更改网络安全秘钥 软件开发职业规划书里的职业兴趣 移动网络技术岗会问什么 浙江通用软件开发现价 为什么会有网络安全企业 红河网络安全咨询 等级保护测评之网络安全技术 能用阿里云服务器制作影像吗 查找图书的数据库 高级数据库开发技术支持 go语言数据库增删改查 寒战下载软件开发 数据库维保项目中标合同公示 用友OA软件开发 奉贤区网络技术服务报价 云南大学网络安全专业排名 青浦区新能源软件开发销售电话 数据库被打挂 公司网络安全应急预案范本 网络文明网络安全板报 网络安全与网络文明主题 趣猜歌软件开发的目的 笔记本连接网络安全秘钥 好活科技互联网招聘
0