Устранение неполадок с надстройкой автоматического масштабирования на основе событий Kubernetes
В этой статье описывается устранение неполадок надстройки Kubernetes На основе событий автомасштабирования (KEDA) в microsoft Служба Azure Kubernetes (AKS). При развертывании надстройки KEDA AKS могут возникнуть проблемы, связанные с конфигурацией автомасштабирования приложения. Эта статья поможет вам устранить ошибки и устранить распространенные проблемы, которые влияют на надстройку, но не рассматриваются в официальном руководстве по часто задаваемым вопросам и устранению неполадок KEDA.
Предварительные требования
- Средство Kubernetes kubectl . Чтобы установить kubectl с помощью Azure CLI, выполните команду az aks install-cli .
Поддержка надстройки KEDA
Надстройка KEDA соответствует модели поддержки, аналогичной другим надстройкам AKS. Поддерживаются все масштабировщики Azure KEDA , но AKS не поддерживает сторонние масштабировщики. Если у вас возникли проблемы со сторонними масштабировщиками, откройте проблему в официальном репозитории KEDA GitHub.
Контрольный список для устранения неполадок
Проверьте компоненты KEDA и устраните их с помощью инструкций, приведенных в следующих разделах.
Проверка доступной версии KEDA
Вы можете определить доступную версию KEDA с помощью команды kubectl get :
kubectl get crd/scaledobjects.keda.sh -o custom-columns='APP:.metadata.labels.app\.kubernetes\.io/version'
В выходных данных команды отображается установленная версия KEDA:
APP
2.8.1
Убедитесь, что брандмауэр кластера настроен правильно.
KEDA может не успешно масштабировать приложения, так как не удается запустить.
При проверка журналов операторов могут появиться записи об ошибках, похожие на следующий текст:
1.6545953013458195e+09 ERROR Failed to get API Group-Resources {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
sigs.k8s.io/controller-runtime/pkg/cluster.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/cluster/cluster.go:160
sigs.k8s.io/controller-runtime/pkg/manager.New
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.11.2/pkg/manager/manager.go:313
main.main
/workspace/main.go:87
runtime.main
/usr/local/go/src/runtime/proc.go:255
1.6545953013459463e+09 ERROR setup unable to start manager {"error": "Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"}
main.main
/workspace/main.go:97
runtime.main
/usr/local/go/src/runtime/proc.go:255
В разделе сервера метрик вы можете обнаружить, что KEDA не удается запустить:
I0607 09:53:05.297924 1 main.go:147] keda_metrics_adapter "msg"="KEDA Version: 2.7.1"
I0607 09:53:05.297979 1 main.go:148] keda_metrics_adapter "msg"="KEDA Commit: "
I0607 09:53:05.297996 1 main.go:149] keda_metrics_adapter "msg"="Go Version: go1.17.9"
I0607 09:53:05.298006 1 main.go:150] keda_metrics_adapter "msg"="Go OS/Arch: linux/amd64"
E0607 09:53:15.344324 1 logr.go:279] keda_metrics_adapter "msg"="Failed to get API Group-Resources" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344360 1 main.go:104] keda_metrics_adapter "msg"="failed to setup manager" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344378 1 main.go:209] keda_metrics_adapter "msg"="making provider" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
E0607 09:53:15.344399 1 main.go:168] keda_metrics_adapter "msg"="unable to run external metrics adapter" "error"="Get \"https://10.0.0.1:443/api?timeout=32s\": EOF"
Этот сценарий, вероятно, означает, что надстройка KEDA не может запуститься из-за неправильно настроенного брандмауэра. Чтобы убедиться, что KEDA работает правильно, настройте брандмауэр в соответствии с правилами глобальной сети Azure.
Включение надстройки для кластеров с самостоятельно управляемыми установками KEDA с открытым кодом
Теоретически keda можно установить много раз, хотя Kubernetes позволяет установить только один сервер метрик. Однако мы не рекомендуем использовать несколько установок, так как будет работать только одна установка.
При установке надстройки KEDA в кластере AKS предыдущая установка KEDA с открытым кодом будет переопределена, и надстройка возьмет на себя управление. В этом сценарии настройка и настройка самоустановленного развертывания KEDA будут потеряны и больше не будут применяться.
Хотя существующее автомасштабирование может продолжать функционировать, эта ситуация представляет риск. Надстройка KEDA будет настроена по-разному и не будет поддерживать такие функции, как управляемое удостоверение. Чтобы предотвратить возникновение ошибок во время установки, рекомендуется удалить существующие установки KEDA перед включением надстройки KEDA.
Чтобы определить, какой адаптер метрик используется KEDA, выполните kubectl get
команду :
kubectl get APIService/v1beta1.external.metrics.k8s.io -o custom-columns='NAME:.spec.service.name,NAMESPACE:.spec.service.namespace'
В обзоре показаны служба и пространство имен, которые Kubernetes будет использовать для получения метрик:
NAME NAMESPACE
keda-operator-metrics-apiserver kube-system
Предупреждение
Если пространство имен не kube-system
является , надстройка AKS игнорируется, и используется другой сервер метрик.
Перезапуск модулей pod оператора KEDA при неправильном внедрении удостоверения рабочей нагрузки
Если вы используете Идентификация рабочей нагрузки Microsoft Entra и включите KEDA перед использованием Идентификация рабочей нагрузки, необходимо перезапустить модули pod оператора KEDA. Это гарантирует внедрение правильных переменных среды. Для этого выполните следующие действия:
Перезапустите модули pod, выполнив следующую команду:
kubectl rollout restart deployment keda-operator -n kube-system
Получите модули pod оператора KEDA, выполнив следующую команду, а затем найдите объекты pod с именами, начинаемыми с 'keda-operator'.
kubectl get pod -n kube-system
Чтобы убедиться, что переменные среды успешно внедрены, выполните следующую команду:
kubectl describe pod <keda-operator-pod-name> -n kube-system
Если переменные успешно внедрены, в разделе Среда должны отобразиться значения для
AZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
иAZURE_AUTHORITY_HOST
.
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по