Не уменьшается количество узлов в группе Managed Service for Kubernetes
Описание проблемы
В кластере Managed Service for Kubernetes не уменьшается количество узлов в группе.
Решение
Managed Service for Kubernetes использует Cluster Autoscaler для автоматического масштабирования группы узлов. Это работает следующим образом: вы указываете минимальный и максимальный размер группы узлов, а кластер Kubernetes периодически проверяет состояние подов и узлов.
Если нагрузка на узлы недостаточная и все поды могут быть назначены с меньшим количеством узлов в группе, то число узлов в группе будет постепенно уменьшаться до указанного минимального размера.
Cluster Autoscaler периодически проверяет нагрузку на узлах и, если поды могут быть перезапущены на других узлах, не перегружая их, очищает узел и останавливает его.
Чтобы узел мог быть очищен, проверьте следующие параметры:
- Узел нагружен менее чем на 50%. Для проверки уровня нагрузки вы можете воспользоваться командой
yc managed-kubernetes cluster list-nodes $CLUSTER_ID
, где$CLUSTER_ID
- идентификатор кластера Managed Service for Kubernetes; - Поды на этом узле не имеют локального хранилища;
- Перемещению пода не мешают
affinity
,antiaffinity
,nodeselector
илиtolopogyspread
; - Поды управляются контроллером: деплоймент, стейтфулсет;
- PodDisruptionBudget
после удаления узла не будет превышен.
Вы можете вручную найти нужный узел и проверить поды, в том числе поды из kube-system
. При необходимости удалите их вручную.
Также вы можете настроить удаление ненужных подов с помощью Descheduler
Рекомендуем включить запись логов с мастера в вашу лог-группу:
yc k8s cluster update <cluster_id> --master-logging enabled=true,log-group-id=<log_group_id>,cluster-autoscaler-enabled=true,kube-apiserver-enabled=true
В логах вы сможете найти причину, по которой не отрабатывает даунскейл.
Если проблема осталась
Если вышеописанные действия не помогли решить проблему, создайте запрос в техническую поддержку
- Идентификатор кластера Managed Service for Kubernetes.
- Примерные дату и время ошибок в работе Cluster Autoscaler.
- YAML-спецификацию контроллера подов: деплоймента, стейтфулсета.