PodDisruptionBudget 与 HPA 中最小副本数之间的差异

问题描述 投票:0回答:1

Kubernetes 引入了PodDisruptionBudget,它可以防止我们的应用程序的功能因手动和自动垂直(节点)扩展而受到干扰。

假设我们使用的是 HozirontalPodAutoscaler。另外使用 PDB 的价值是什么? PodDisruptionBudget

minAvailable
HozirontalPodAutoscaler
minReplicas
有什么区别?

kubernetes horizontal-pod-autoscaling
1个回答
0
投票

他们做不同的事情。 HorizontalPodAutoscaler 根据某些指标控制 Deployment 的

replicas:
计数。 PodDisruptionBudget 主要影响节点是否可以离线。

假设您有一个云托管集群,并且集群管理员想要升级集群节点上的基本操作系统。 为此,他们需要“封锁”每个节点 – 防止在该节点调度新的 Pod – 并“耗尽”它 – 重新定位位于该节点的所有 Pod – 然后才能重新启动它。

同时,我们还假设您的应用程序 Deployment 有

replicas: 3
,一个指定
minReplicas: 2
的 PodDisruptionBudget,并且两个副本恰好位于要终止的同一节点上。 耗尽操作将删除这些副本并在不同的节点上重新创建它们。 PDB 将保持其中一个副本运行,直到另一个副本被删除并重新创建。

+--------------+   +--------------+
| Healthy node |   | Drained node |
+--------------+   +--------------+
| pod-1        |   | pod-2        | <-- PDB keeps this replica alive
|              |   |~pod-3~~~~~~~~|     while this Pod is deleted and recreated
+--------------+   +--------------+

您“应该”有一个 PodDisruptionBudget,但在集群管理员故意删除节点的情况之外,您不会注意到它。

PDB 独立于 HPA。 我要注意的一个交互是,将 PDB

minReplicas:
设置为高于 HPA
minReplicas:
是没有意义的(如果您可以容忍自动缩放到 1 个副本,那么您可以支持使用 1 个副本,因为也停电)。 如果 PDB
minReplicas:
是百分比,则它是 Deployment
replicas:
的百分比,这意味着它将跟踪 HPA 所做的更改。

© www.soinside.com 2019 - 2024. All rights reserved.