В настоящее время я работаю с Kubernetes 1.9.7 и успешно использую Cluster Autoscaler и несколько Horizontal Pod Autoscalers .
Однако я недавно начал замечать, что HPA будет отдавать предпочтение новым пакетам при уменьшении количества реплик.
Например, у меня есть 1 реплика службы A, работающая на узле вместе с несколькими другими службами. Этот узел имеет много доступных ресурсов. Во время загрузки целевое использование ЦП для службы A превысило настроенный порог, поэтому HPA решил масштабировать его до 2-х реплик. Поскольку не было других доступных узлов, CAS охватывает новый узел, на котором была успешно запланирована новая реплика - пока все хорошо!
Проблема в том, что, когда целевое использование ЦП падает ниже настроенного порога, HPA решает уменьшить масштаб до 1 реплики. Я ожидал, что новая реплика на новом узле будет удалена, что позволит CAS отключить этот новый узел. Однако HPA удалил существующую реплику службы A, которая работала на узле с большим количеством доступных ресурсов. Это означает, что теперь у меня есть служба A, работающая на новом узле, которая сама по себе не может быть удалена CAS, даже если на существующем узле достаточно места для планирования службы A.
Это проблема с HPA или планировщиком Kubernetes? Служба A теперь работает на новом узле в течение 48 часов и все еще не перенесена, несмотря на то, что на существующем узле ресурсов более чем достаточно.