Что произошло:
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
. В нашем случае мы помечаем модули как не готовые, когда они обрабатывают трафик, и мы не хотим, чтобы больше трафика направлялось на этот модуль. Я знаю, что термин kubernets 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