gpt4 book ai didi

Kubernetes PodDisruptionBudget、Horizo​​ntalPodAutoscaler 和 RollingUpdate 交互?

转载 作者:行者123 更新时间:2023-12-02 12:17:32 27 4
gpt4 key购买 nike

如果我有以下 Kubernetes 对象:

  • DeploymentrollingUpdate.maxUnavailable设置为 1 .
  • PodDisruptionBudgetmaxUnavailable设置为 1 .
  • HorizontalPodAutoscaler设置以允许自动缩放。
  • 集群自动缩放已启用。

  • 如果集群负载过重并且正在扩展,会发生什么:
  • 在滚动更新期间?办新Pod由于放大使用新版本的Pod而添加的?
  • 何时需要重新启动或更换节点?是否PodDisruptionBudget完全停止重启?是否HorizontalPodAutoscaler在关闭另一个节点之前扩大节点数量?
  • Pod亲和力设置为避免放置两个 Pod来自同一个 Deployment在同一个节点上。
  • 最佳答案

  • documentation :

  • Pods which are deleted or unavailable due to a rolling upgrade to an application do count against the disruption budget, but controllers (like deployment and stateful-set) are not limited by PDBs when doing rolling upgrades – the handling of failures during application updates is configured in the controller spec.



    所以它部分取决于 Controller 的配置和实现。我相信自动缩放器添加的新 Pod 将使用新版本的 Pod,因为那时部署定义中存在该版本。
  • 这取决于您执行节点重启的方式。如果你只是切断电源,什么也做不了;) 如果你执行正确的 drain在关闭节点之前,然后 PodDisruptionBudget将被考虑在内,排水程序不会违反它。 Eviction API 遵守中断预算,但可能会违反手动删除 pod 等低级别操作。这更像是一些 API 尊重的建议,而不是整个 Kubernetes 强制执行的强制限制。
  • 根据official documentation如果亲缘关系设置为“软”亲和性,则无论如何都会在同一节点上安排 Pod。如果它“困难”,那么部署将卡住,无法安排所需数量的 pod。滚动更新仍然是可能的,但 HPA 将无法再增加 pod 池。
  • 关于Kubernetes PodDisruptionBudget、Horizo​​ntalPodAutoscaler 和 RollingUpdate 交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54902716/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com