您现在的位置是:首页 >技术杂谈 >如何在k8s节点故障、维护期间 解决Pod 频繁调度工作负载可用性的问题?网站首页技术杂谈

如何在k8s节点故障、维护期间 解决Pod 频繁调度工作负载可用性的问题?

山河已无恙 2024-06-14 17:17:30
简介如何在k8s节点故障、维护期间 解决Pod 频繁调度工作负载可用性的问题?

写在前面


  • 分享一些 Pod Disruption Budgets(PDB) 的笔记
  • 博文内容涉及:
    • 为什么需要 PDB,什么是 PDB
    • PDB 可以做什么?配置创建 PDB Demo
    • PDB 原理简单说明
  • 理解不足小伙伴帮忙指正

不念过去,不畏将来,不负余生


为什么需要 PDB

对于对高可用要求很高的一些容器化应用,例如一些有状态的工作负载,比如数据库,分布式协调服务等, K8s 集群中 Pod 频繁的调度是不能容忍的一件事。 尤其涉及到应用集群数据同步,共识,心跳等诸多因素. 容易造成可用性降低,数据延迟甚至潜在的数据丢失。

集群中的 Pod 正常情况下不会频繁的调度,即使存在大量的超售超用,也可以通过 Qos 等手段在准入的时候控制。当然,除非有人操作,或者节点故障等一些因素的干扰。

在 k8s 中,我们把这些干扰分为两类,自愿干扰和非自愿干扰:

非自愿干扰(Involuntary Disruptions) 的情况常见下面一些场景:

  • 节点下层物理机的硬件故障
  • 集群管理员错误地删除虚拟机ÿ
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。