
Игры с Horizontal Pod Autoscaling
lioncub 30 минут назад Игры с Horizontal Pod Autoscaling Простой 6 мин 389 Kubernetes * DevOps * Обзор Немного практики для "пощупать" HPA в кластере, поиграться параметрами масштабирования. Можно было бы быстро перейти...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Значимый прорыв формирует отрасль ИИ: lioncub 30 минут назад Игры с Horizontal Pod Autoscaling Простой 6 мин 389 Kubernetes * DevOps * Обзор Немного практики для "пощупать" HPA в кластере, поиграться параметрами масштабирования. Можно было бы быстро перейти от теории к практике, ну или наоборот. В примерах используется масштабирование на основе очереди RabbitMQ.
Можно использовать minikube, MicroK8s, или где вам удобно... Для удобства развёртывания примеры k8s-hpa-rabbitmq-demo. В данном случае тестировать HPA можно тремя способами: с помощью одной KEDA, с помощью Prometheus Adapter и метрик из Prometheus, а также с помощью KEDA и метрик из VictoriaMetrics.
Технические детали
Необходимо выбрать один или использовать по очереди. Все способы разворачиваются с минимальными требованиями без "лишних" объектов. Для работы с очередью понадобится агент mrlioncub/rabbitmq-agent в кластере.
Перед разворачиванием подключим репозитории helm:helm repo add helmforge helm repo add prometheus-community helm repo add vm helm repo add kedacore helm repo add k8s-hpa-rabbitmq-demo helm repo updateДля всех тестов нам понадобится RabbitMQ с включённым /metrics:charts/rabbitmq/values. yaml:#это имя сервиса понадобится для обращения fullnameOverride: "rabbitmq-server" auth: username: guest password: guest podAnnotations: prometheus. io/scrape: "true" metrics: enabled: true singleNode: persistence: enabled: falsehelm upgrade --create-namespace --namespace k8-hpa-rabbitmq-demo --install rabbitmq-server helmforge/rabbitmq -f charts/rabbitmq/values.
yamlПолезные команды, которые могут понадобиться для анализа:kubectl -n k8-hpa-rabbitmq-demo exec rabbitmq-server-0 -- rabbitmqctl list_queues -s - показать значение очередиkubectl -n k8-hpa-rabbitmq-demo run curl -it --rm --image=alpine/curl --restart=Never -- curl -s | grep ' ' - показать очередь уже в самих метриках сервисаСпособ 1: KEDAДля этого способа нужна сама KEDA:helm upgrade --create-namespace --namespace k8-hpa-rabbitmq-demo --install keda kedacore/kedaи тот кто будет обрабатывать очередь:helm upgrade --create-namespace --namespace k8-hpa-rabbitmq-demo --install rabbitmq-agent-reciever k8s-hpa-rabbitmq-demo/rabbitmq-agent --set keda. enabled=trueПроверим работу ScaledObject для работы с KEDA, созданного при развёртывании rabbitmq-agent-reciever. Пример, что работает (READY: True):$ kubectl get scaledobject -n k8-hpa-rabbitmq-demo NAME SCALETARGETKIND SCALETARGETNAME MIN MAX READY ACTIVE FALLBACK PAUSED TRIGGERS AUTHENTICATIONS AGE rabbitmq-scaledobject apps/v1.
Deployment rabbitmq-agent-reciever 1 10 True False False False rabbitmq 2mСпособ 2: Prometheus и Prometheus AdapterСоответственно понадобятся Prometheus и Prometheus Adaptercharts/prometheus/values.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





