![](/img/trans.png)
[英]Horizontal Pod Autoscaler with the ArangoDB Kubernetes Operator
[英]Kubernetes Horizontal Pod Autoscaler not utilising node resources
我目前正在运行Kubernetes 1.9.7,并成功使用了Cluster Autoscaler和多个Horizontal Pod Autoscaler 。
但是,我最近开始注意到,在缩减副本时,HPA会倾向于使用较新的Pod。
例如,我有一个服务A的副本,它在节点上与其他几个服务一起运行。 该节点具有大量可用资源。 在加载期间,服务A的目标CPU利用率上升到配置的阈值之上,因此HPA决定将其扩展到2个副本。 由于没有其他可用节点,因此CAS跨越了一个新节点,在该节点上已成功调度了新副本-到目前为止一切顺利!
问题是,当目标CPU利用率降回到配置的阈值以下时,HPA决定缩减为1个副本。 我希望看到新节点上的新副本已删除,从而使CAS能够关闭该新节点。 但是,HPA删除了具有大量可用资源的,正在节点上运行的现有服务A副本。 这意味着我现在可以在新节点上单独运行服务A,即使有足够的空间在现有节点上安排服务A,CAS也无法删除它。
HPA或Kubernetes调度程序是否存在问题? 服务A现在已经在新节点上运行了48个小时,尽管现有节点上有足够的资源,但仍未重新计划。
在仔细研究了集群配置之后,我设法得出了为什么这样做的结论。
服务A配置为在公共子网上运行,并且CA创建的新节点为公共。 运行服务A原始副本的现有节点是私有的,因此导致HPA删除此副本。
我不确定首先如何将服务A调度到此节点上,但这是一个不同的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.