Kubernetes Horizo​​ntal Pod Autoscaler不使用节点资源

时间:2018-04-28 13:17:48

标签: kubernetes autoscaling

我目前正在运行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,即使在现有节点上有足够的空间来安排服务A,CAS也无法将其删除。

这是HPA或Kubernetes调度程序的问题吗?服务A现在已在新节点上运行48小时,尽管现有节点上有足够的资源,但仍未重新安排。

1 个答案:

答案 0 :(得分:1)

通过我的群集配置搜索后,我设法得出结论为什么会发生这种情况。

服务A配置为在公有子网上运行,并且CA创建的新节点是公共的。运行服务A的原始副本的现有节点是私有的,因此引导HPA删除此副本。

我不确定服务A首先是如何安排到此节点上的,但这是一个不同的问题。