Я успешно развернул AKS с виртуальными узлами, где он автоматически создает экземпляры контейнеров Azure для поддержки количества запрошенных модулей, и я могу вручную увеличить его с помощью:
kubectl scale --replicas=20 deployment.apps/blah
И, конечно же, я вижу20 экземпляров контейнера создаются в специальной группе ресурсов, и все они запускают мое приложение.Когда я уменьшу его, они исчезнут.Это здорово.
Итак, я пытаюсь настроить автомасштабирование.Я устанавливаю лимиты / запросы для CPU в моем yaml и говорю:
kubectl autoscale deployment blah --min=1 --max=20 --cpu-percent=50
Но новые модули не создаются.Чтобы узнать больше, я говорю:
kubectl describe hpa
И я получаю:
Type Status Reason Message
---- ------ ------ -------
AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale
ScalingActive False FailedGetResourceMetric the HPA was unable to compute the replica count: unable to get metrics for resource cpu: no metrics returned from resource metrics API
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedGetResourceMetric 3s (x12 over 2m49s) horizontal-pod-autoscaler unable to get metrics for resource cpu: no metrics returned from resource metrics API
Warning FailedComputeMetricsReplicas 3s (x12 over 2m49s) horizontal-pod-autoscaler failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API
Согласно этим документам metrics-server
автоматически доступен в AKS начиная с 1.8(у меня 1.12, недавно созданный).
Это определенно проблема с виртуальными узлами, то есть им не хватает возможности выставить использование ресурсов через metrics-server
способом, требуемым autoscale
?Или мне нужно что-то еще настроить?