Kube-controller-manager HPA подсчитывает неподготовленные поды и не учитывает их при расчете реплики
Что случилось:
HPA
не масштабирует поды должным образом после обновления kubernetes 1.10.6 до 1.12.8. В приведенном ниже фрагменте, хотя показатель масштабирования превышает целевое значение, количество реплик не увеличивается.
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
test-service-hpa Deployment/test-deploy 666m/600m 3 100 3 26d
test-deploy-5b985f9785-4znlb 1/2 Running 0 3h21m
test-deploy-5b985f9785-csld4 2/2 Running 0 10h
test-deploy-5b985f9785-tg52z 1/2 Running 0 3h18m
Это потому, что HPA
не рассматривает неподготовленные капсулы в desiredReplica
расчет. В нашем случае использования мы помечаем модули как неготовые, когда модуль обрабатывает трафик, и мы не хотим, чтобы к нему направлялся больше трафика. Я знаю термин кубернецunready
pods не очень хорошо используется в нашем сценарии использования. Но именно такое поведение нормально работало с kubernetes 1.10.6, а не с 1.12.8, хотелось бы знать, есть ли обходной путь для его исправления.
Что вы ожидали:
HPA
следует учитывать unready
стручки также при увеличении масштаба. Или нужен флаг, чтобы восстановить это поведение с 1.10.6.
Как это воспроизвести (максимально минимально и точно):
Create a simple deployment with minPod =3, maxPod=100.
Что еще нам нужно знать?:
Среда:
Kubernetes version (use kubectl version): 1.12.8
OS (e.g: cat /etc/os-release): Ubuntu "18.04 LTS (Bionic Beaver)"
Kernel (e.g. uname -a): x86_64 x86_64 GNU/Linux