【发布时间】:2018-10-09 03:47:33
【问题描述】:
我目前正在运行 Kubernetes 1.9.7 并成功使用了Cluster Autoscaler 和多个Horizontal Pod Autoscalers。
但是,我最近开始注意到 HPA 在缩小副本时会偏爱更新的 Pod。
例如,我有 1 个服务 A 的副本在一个节点上与其他几个服务一起运行。该节点有大量可用资源。在加载期间,服务 A 的目标 CPU 利用率高于配置的阈值,因此 HPA 决定将其扩展到 2 个副本。由于没有其他可用节点,CAS 跨越了一个新节点,新副本在该节点上成功调度 - 到目前为止一切顺利!
问题是,当目标 CPU 利用率回落到配置的阈值以下时,HPA 决定缩减到 1 个副本。我希望看到新节点上的新副本被删除,从而使 CAS 能够关闭该新节点。但是,HPA 删除了在具有大量可用资源的节点上运行的现有服务 A 副本。这意味着我现在在一个新节点上运行服务 A,它本身无法被 CAS 删除,即使现有节点上有足够的空间来安排服务 A。
这是 HPA 或 Kubernetes 调度程序的问题吗?服务 A 现在已经在新节点上运行了 48 小时,尽管现有节点上有足够多的资源,但仍未重新调度。
【问题讨论】: