Поделиться через


Мониторинг метрик уровня управления Служба Azure Kubernetes (AKS) (предварительная версия)

Работоспособность плоскости управления Служба Azure Kubernetes (AKS) важна для производительности и надежности кластера. Метрики плоскости управления (предварительная версия) обеспечивают большую видимость доступности и производительности, что позволяет максимально повысить общую наблюдаемость и обеспечить эффективность работы. Эти метрики полностью совместимы с Prometheus и Grafana и могут быть настроены только для хранения необходимых данных. С помощью этих новых метрик можно собирать все метрики с сервера API, ETCD, планировщика, автомасштабирования и диспетчера контроллеров.

Эта статья поможет понять эту новую функцию, как реализовать ее и как наблюдать за собранными данными телеметрии.

Предварительные требования и ограничения

Установка или обновление aks-preview расширения Azure CLI

Важно!

Предварительные версии функций AKS доступны на уровне самообслуживания. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS предоставляются с частичной клиентской поддержкой по мере возможности. Следовательно, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения доступны в следующих статьях поддержки.

aks-preview Установите расширение Azure CLI с помощью az extension add команды.

az extension add --name aks-preview

Если необходимо обновить версию расширения, это можно сделать с помощью az extension update команды.

az extension update --name aks-preview

Регистрация флага компонента AzureMonitorMetricsControlPlanePreview

Зарегистрируйте флаг компонента AzureMonitorMetricsControlPlanePreview, используя команду az feature register, как показано в указанном ниже примере.

az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Через несколько минут отобразится состояние Registered (Зарегистрировано). Проверьте состояние регистрации с помощью команды az feature show :

az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Когда состояние отражает зарегистрировано, обновите регистрацию поставщика ресурсов Microsoft.ContainerService с помощью команды az provider register:

az provider register --namespace "Microsoft.ContainerService"

Включение метрик плоскости управления в кластере AKS

Вы можете включить метрики уровня управления с помощью управляемой службы Azure Monitor для надстройки Prometheus во время создания кластера или существующего кластера. Сведения о сборе метрик Prometheus из кластера Kubernetes см. в разделе "Включить Prometheus" и Grafana для кластеров Kubernetes и следуйте инструкциям на вкладке CLI для кластера AKS.

Если в кластере уже развернута надстройка Prometheus, можно просто запустить az aks update обновление кластера, чтобы начать сбор метрик уровня управления.

az aks update --name <cluster-name> --resource-group <resource-group>

Примечание.

В отличие от метрик, собранных из узлов кластера, метрики плоскости управления собираются компонентом, который не является частью надстройки ama-metrics . AzureMonitorMetricsControlPlanePreview Включение флага компонента и управляемой надстройки prometheus гарантирует сбор метрик плоскости управления. После включения сбора метрик может потребоваться несколько минут, чтобы данные отображались в рабочей области.

Запрос метрик плоскости управления

Метрики плоскости управления хранятся в рабочей области Azure Monitor в регионе кластера. Их можно запрашивать непосредственно из рабочей области или через экземпляр Управляемой Grafana Azure, подключенный к рабочей области. Чтобы найти рабочую область Azure Monitor, связанную с кластером, в левой области выбранного кластера AKS перейдите в раздел "Мониторинг" и выберите Аналитика. На странице Аналитика контейнера для кластера выберите "Монитор Параметры".

Снимок экрана: рабочая область Azure Monitor.

Если вы используете Управляемый Grafana Azure для визуализации данных, вы можете импортировать следующие панели мониторинга. AKS предоставляет шаблоны панелей мониторинга для просмотра и анализа данных телеметрии плоскости управления в режиме реального времени.

Настройка метрик плоскости управления

По умолчанию пакеты AKs включают предварительно настроенный набор метрик для сбора и хранения для каждого компонента. Поля API server и etcd по умолчанию включены. Этот список можно настроить с помощью ama-settings-configmap. Список minimal-ingestion метрик профиля доступен здесь.

Ниже перечислены целевые объекты по умолчанию:

controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true

Различные параметры похожи на Управляемый Prometheus Azure, перечисленный здесь.

Все конфигурации Карты должны применяться к пространству kube-system имен для любого кластера.

Прием только минимальных метрик для целевых объектов по умолчанию

Это поведение по умолчанию с параметром default-targets-metrics-keep-list.minimalIngestionProfile="true". Только метрики, перечисленные далее в этой статье, получаются для каждого из целевых объектов по умолчанию, которые в данном случае и controlplane-apiservercontrolplane-etcd.

Прием всех метрик из всех целевых объектов

Выполните следующие действия, чтобы собрать все метрики из всех целевых объектов в кластере.

  1. Скачайте файл ama-metrics-settings-configmap.yaml и переименуйте его configmap-controlplane.yamlв .

  2. Задайте minimalingestionprofile = false и убедитесь, что целевые объекты, в которых default-scrape-settings-enabled требуется слом, заданы true. Единственными целевыми объектами, которые можно указать, являются: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-schedulerи controlplane-kube-controller-managercontrolplane-etcd.

  3. Примените ConfigMap, выполнив команду kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    После применения конфигурации в рабочей области Azure Monitor метрики из указанных целевых объектов отображаются в рабочей области Azure Monitor.

Прием нескольких других метрик в дополнение к минимальным метрикам

Minimal ingestion profile — это параметр, который помогает уменьшить объем метрик, так как собираются только метрики, используемые панелями мониторинга по умолчанию, правила записи по умолчанию и оповещения по умолчанию. Выполните следующие действия, чтобы настроить это поведение.

  1. Скачайте файл ama-metrics-settings-configmap и переименуйте его configmap-controlplane.yamlв .

  2. Задайте minimalingestionprofile = true и убедитесь, что целевые объекты, в которых default-scrape-settings-enabled требуется слом, заданы true. Единственными целевыми объектами, которые можно указать, являются: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-schedulerи controlplane-kube-controller-managercontrolplane-etcd.

  3. default-targets-metrics-keep-listВ разделе укажите список метрик для true целевых объектов. Например,

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Примените ConfigMap, выполнив команду kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    После применения конфигурации в рабочей области Azure Monitor метрики из указанных целевых объектов отображаются в рабочей области Azure Monitor.

Прием только определенных метрик из некоторых целевых объектов

  1. Скачайте файл ama-metrics-settings-configmap и переименуйте его configmap-controlplane.yamlв .

  2. Задайте minimalingestionprofile = false и убедитесь, что целевые объекты, в которых default-scrape-settings-enabled требуется слом, заданы true. Единственными целевыми объектами, которые можно указать здесь: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-schedulerиcontrolplane-kube-controller-managercontrolplane-etcd .

  3. default-targets-metrics-keep-listВ разделе укажите список метрик для true целевых объектов. Например,

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Примените ConfigMap, выполнив команду kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    После применения конфигурации в рабочей области Azure Monitor метрики из указанных целевых объектов отображаются в рабочей области Azure Monitor.

Устранение неполадок с метриками уровня управления

Убедите проверка сь, что флаг AzureMonitorMetricsControlPlanePreview компонента включен, и ama-metrics модули pod запущены.

Примечание.

Методы устранения неполадок для управляемой службы Azure Prometheus не будут переводить непосредственно здесь, так как компоненты слом плоскости управления не присутствуют в надстройке управляемого prometheus.

Форматирование или ошибки ConfigMap

Обязательно дважды проверка форматирование ConfigMap и правильно ли заполнены поля предполагаемыми значениями. default-targets-metrics-keep-listВ частности, default-scrape-settings-enabledи minimal-ingestion-profile.

Изоляция плоскости управления от проблемы уровня данных

Начните с настройки некоторых связанных с узлом метрик и убедитесь, что метрикиtrue перенаправляются в рабочую область. Это помогает определить, относится ли проблема к метрикам уровня управления.

Прием событий

После применения изменений можно открыть обозреватель метрик на странице обзора Azure Monitor или из раздела "Мониторинг " выбранного кластера. В портал Azure выберите метрики. Проверьте увеличение или уменьшение количества событий, которые будут приема в минуту. Это поможет определить, отсутствует ли конкретная метрика или отсутствуют все метрики.

Конкретная метрика не предоставляется

Существовали случаи, когда метрики документируются, но не предоставляются из целевого объекта и не пересылаются в рабочую область Azure Monitor. В этом случае необходимо убедиться, что другие метрики перенаправляются в рабочую область.

Нет доступа к рабочей области Azure Monitor

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

Отключение метрик плоскости управления в кластере AKS

Метрики плоскости управления можно отключить в любое время, отключив флаг компонента, отключив управляемый Prometheus или удалив кластер AKS.

Флаг предварительной версии включен после установки Managed Prometheus

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

Вы можете запустить az aks update, чтобы убедиться, что обновления кластера начинают собирать метрики плоскости управления.

az aks update -n <cluster-name> -g <resource-group>

Примечание.

Это действие не удаляет существующие данные, хранящиеся в рабочей области Azure Monitor.

Выполните следующую команду, чтобы удалить надстройку метрик, которая удаляет метрики Prometheus.

az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>

Выполните следующую команду, чтобы отключить удаление метрик плоскости управления в кластере AKS, отменив AzureMonitorMetricsControlPlanePreview регистрацию флага компонента с помощью команды az feature unregister .

az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Вопросы и ответы

  • Можно ли отменить эти метрики с помощью локального prometheus?

    • Метрики плоскости управления в настоящее время нельзя отменить с помощью локального prometheus. Локальный prometheus сможет сломать один экземпляр в зависимости от подсистемы балансировки нагрузки. Эти метрики не рассматриваются, так как часто существует несколько реплик метрик уровня управления, которые будут видимы только через Управляемый Prometheus
  • Почему агент пользователя недоступен через метрики плоскости управления?

Следующие шаги

После оценки этой функции предварительной версии поделитесь своим отзывом. Мы заинтересованы в слушании того, что вы думаете.