【发布时间】:2020-11-17 03:00:18
【问题描述】:
我有一个 Kubernetes 集群。通过策略,我确保所有服务都定义了请求、限制和 HPA,以便我可以顺利进行自动缩放。我还定义了 ResourceQuota。在这种情况下,是否也需要定义 PDB?请指教。
【问题讨论】:
标签: kubernetes autoscaling azure-aks horizontal-pod-autoscaling
我有一个 Kubernetes 集群。通过策略,我确保所有服务都定义了请求、限制和 HPA,以便我可以顺利进行自动缩放。我还定义了 ResourceQuota。在这种情况下,是否也需要定义 PDB?请指教。
【问题讨论】:
标签: kubernetes autoscaling azure-aks horizontal-pod-autoscaling
毫无疑问,PDB 旨在补充您的副本集,以确保节点操作不会通过同时移除所有必需实例的运行来降低您的服务。它是一种与正在运行的副本数量相关的资源,并利用 pod 标签选择器(与 service 相同)来确定您的 PDB 应该查看哪个 pod
在节点操作期间,drain 将停止并等待在执行 pod eviction 时尊重所有 PDB。如果被驱逐会导致 PDB 无效的 Pod 将等待条件有效。
您需要注意的是要有正确的定义。用于具有单个副本的部署的 PDB 很可能会导致节点操作永远不会成功。
更多详情,请看这篇文章
关于资源清单是什么的完整详细信息
https://kubernetes.io/docs/tasks/run-application/configure-pdb/
【讨论】: