HPA Azure AKS не удалось использовать процессор

У меня есть один узел K8s кластера в Azure, используя AKS. Я создал развертывание и сервис, используя простую команду:

kubectl run php-apache --image=pilchard/hpa-example:latest --requests=cpu=200m,memory=300M --expose --port=80

И включил HPA через команду:kubectl autoscale deployment php-apache --cpu-percent=10 --min=1 --max=15

После запуска kubectl describe hpa php-apacheЯ вижу сообщение об ошибке:

horizontal-pod-autoscaler  unable to get metrics for resource cpu: unable to fetch metrics from API: the server could not find the requested resource (get pods.metrics.k8s.io)
horizontal-pod-autoscaler  failed to get cpu utilization: unable to get metrics for resource cpu: unable to fetch metrics from API: the server could not find the requested resource (get pods.metrics.k8s.io)

И метрика процессора неизвестна при запуске kubectl get hpa, Любая помощь могла бы быть полезна.

Моя версия AKS kube v1.9.11,

1 ответ

Чтобы использовать HPA, вам нужно либо установить heapster ( устарело), либо сервер метрик как минимум.

Это обеспечивает минимальный набор показателей ЦП и памяти для автомасштабирования. Хороший способ убедиться, что вы установили какой-либо из них, - это получить такой вывод от kubectl top pod:

$ kubectl top pod
NAME                        CPU(cores)   MEMORY(bytes)
http-svc-xxxxxxxxxx-xxxxx   1m           7Mi
myapp-pod                   0m           53Mi
sleep-xxxxxxxxxx-xxxxx      4m           27Mi

Если у вас есть добавленный сервер метрик (который по умолчанию поставляется с последними запросами), сделайте следующее, чтобы исправить это.

kubectl edit deployment applicationName

в приведенном выше cmd замените appliationName на имя вашего приложения, и если вы вызываете youre deployment.yml deploy, замените и его, а в режиме редактирования добавьте следующее после строки terminationMessagePolicy.

              resource:
                 requests:
                   cpu: 50m
                 limits:
                   cpu: 500m

После того, как вы закончите редактирование, нажмите клавишу "esc" и введите:wq, ваши изменения будут сохранены, и через несколько секунд, если вы это сделаете

kubectl get hpa

или

kubectl describe hpa applicationName

вы не должны увидеть никаких ошибок, обратите внимание, что для изменения лимита процессора и запроса в зависимости от использования вашего приложения они являются здесь только примерными значениями

Другие вопросы по тегам