kubernetes - 定义了 HPA 的 kubernetes 集群是否需要 PDB?

标签 kubernetes autoscaling azure-aks horizontal-pod-autoscaling

我有一个 Kubernetes 集群。通过策略,我确保所有服务都定义了请求、限制和 HPA,这样我就可以顺利进行自动缩放。我还定义了 ResourceQuota。这样的场景,是不是也需要定义PDB呢?请指教。

最佳答案

毫无疑问,PDB 旨在补充您的副本集,以确保节点操作不会通过同时删除所有必需的实例运行来降低您的服务。它是一种资源,会影响正在运行的副本的数量,并利用 pod 标签选择器(与服务相同)来确定您的 PDB 应该查看哪个 pod

在节点操作期间,drain 将停止并等待所有 PDB 在执行 pod 驱逐时得到遵守。如果被逐出会导致 PDB 无效的 Pod 将等到条件有效。

您需要注意的是要有正确的定义。用于具有单个副本的部署的 PDB 很可能会导致节点操作永远不会成功。

更多细节,请看这篇文章

https://blog.gruntwork.io/avoiding-outages-in-your-kubernetes-cluster-using-poddisruptionbudgets-ef6a4baa5085

以及有关资源 list 的完整详细信息

https://kubernetes.io/docs/tasks/run-application/configure-pdb/

关于kubernetes - 定义了 HPA 的 kubernetes 集群是否需要 PDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63121100/

相关文章:

elasticsearch - 无法提取AKS上托管的Elasticsearch集群传输层的证书

amazon-web-services - Amazon Kubernetes AWS-EKS 未正确创建或未与 kubectl 同步

amazon-web-services - 当没有事件时,如何让 DynamoDB 自动缩放缩减?

docker - 在主节点上部署 pod 时出现问题解析问题

amazon-web-services - 亚马逊 aws Auto Scaling 组实例名称标签

kubernetes - 在Google Kubernetes引擎上进行垂直自动缩放?

azure - 如何将 Azure Kubernetes Engine 的托管身份授予另一个租户中的 Azure 容器注册表?

具有 SignalR SSL 入口的 Azure AKS .NET Core

kubernetes - kustomize 编辑集图像不适用于 kustomize multibases 和 common base

kubernetes - 我如何通过命令行进行此部署