如果我有以下 Kubernetes 对象:
Deployment
rollingUpdate.maxUnavailable
设置为 1
。 PodDisruptionBudget
maxUnavailable
设置为 1
。 HorizontalPodAutoscaler
设置以允许自动缩放。 如果集群负载过重并且正在扩展,会发生什么:
Pod
是否使用新版本的 Pod
? PodDisruptionBudget
是否完全停止重启?在关闭另一个节点之前,HorizontalPodAutoscaler
是否会扩大节点数量? Pod
亲和性设置为避免将来自同一 Pod
的两个 Deployment
放在同一节点上时。 最佳答案
所以它部分取决于 Controller 的配置和实现。我相信自动缩放器添加的新 Pod 将使用新版本的 Pod,因为那时部署定义中存在该版本。
drain
,那么 PodDisruptionBudget
将被考虑在内,并且排水程序不会违反它。 Eviction API 遵守中断预算,但可能会违反手动 pod 删除等低级别操作。这更像是一些 API 尊重的建议,而不是整个 Kubernetes 强制执行的强制限制。 关于Kubernetes PodDisruptionBudget、HorizontalPodAutoscaler 和 RollingUpdate 交互?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54902716/