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


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

В этой статье вы узнаете, как отслеживать плоскость управления Службы Azure Kubernetes (AKS) с помощью метрик уровня управления в Azure Monitor.

AKS бесплатно поддерживает подмножество метрик плоскости управления с помощью метрик платформы Azure Monitor. Функция метрик уровня управления обеспечивает видимость доступности и производительности критически важных компонентов плоскости управления, таких как сервер API и т. д., планировщик, автомасштабирование и диспетчер контроллеров в AKS. Эта функция также полностью совместима с управляемой службой Prometheus и Azure Managed Grafana. Эти метрики можно использовать для повышения общей наблюдаемости и поддержания эффективности работы кластера AKS.

Метрики платформы управления

AKS предлагает некоторые бесплатные метрики уровня управления для мониторинга сервера API и etcd. Эти метрики автоматически собираются для всех кластеров AKS без затрат. Вы можете проанализировать метрики с помощью обозревателя метрик на портале Azure. Вы также можете создавать оповещения на основе метрик с помощью данных метрик.

Полный список поддерживаемых метрик платформы плоскости управления см. в справочнике по мониторингу AKS.

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

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

Внимание

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

  • Установите или обновите расширение Azure CLI, используя команду az extension add или az extension update.

    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the aks-preview extension
    az extension update --name aks-preview
    

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

  1. Зарегистрируйте AzureMonitorMetricsControlPlanePreview флаг функции с помощью команды az feature register.

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

    В течение нескольких минут состояние отображается как зарегистрированное.

  2. Проверьте состояние регистрации с помощью az feature show команды:

    az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
    
  3. Когда состояние — Зарегистрировано, обновите регистрацию поставщика ресурсов Microsoft.ContainerService, используя команду az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

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

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

Примечание.

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

Новый кластер AKS

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

Существующий кластер AKS

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

az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP

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

Метрики плоскости управления хранятся в рабочей области Azure Monitor в регионе кластера. Метрики можно запрашивать непосредственно в рабочей области или с помощью экземпляра Azure Managed Grafana, подключенного к рабочей области.

  1. На портале Azure перейдите к ресурсу кластера AKS.

  2. В меню слева выберите Монитор>Настройки монитора.

    Снимок экрана: пример рабочей области Azure Monitor.

  3. Перейдите в рабочую область Azure Monitor, связанную с кластером.

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

  4. В рабочей области Azure Monitor в разделе Managed Prometheus запросите метрики с помощью обозревателя Prometheus.

    Снимок экрана: интерфейс обозревателя Prometheus.

Примечание.

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

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

AKS включает предварительно настроенный набор метрик для сбора и хранения для каждого компонента. Метрики для сервера API и т. д. собираются по умолчанию. Список метрик, собранных, можно настроить, изменив ama-metrics-settings-configmap.yaml файл конфигурации.

Целевые объекты по умолчанию включают следующие значения:

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

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

Настройка профиля приема

Вы можете настроить файл импорта для собранных метрик. Дополнительную информацию см. в "Минимальном профиле приёма для метрик плоскости управления в управляемой службе для Prometheus".

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

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

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

  1. Скачайте файл ama-metrics-settings-configmap.yaml configmap.

  2. Переименуйте файл configmap configmap-controlplane.yaml.

  3. Задайте для параметра minimalingestionprofile значение false.

  4. В разделе default-scrape-settings-enabledубедитесь, что целевые объекты, для которых требуется слом, заданы true.

    Целевые объекты, которые можно задать, являются следующими:

    • controlplane-apiserver
    • controlplane-cluster-autoscaler
    • controlplane-kube-scheduler
    • controlplane-kube-controller-manager
    • controlplane-etcd
  5. Примените файл configmap с помощью команды kubectl apply.

    kubectl apply -f configmap-controlplane.yaml
    

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

Сбор больше, чем минимальный объем метрик

Использование параметра minimalingestionprofile помогает уменьшить объем получаемых метрик. Если задано значение true, собираются только правила записи по умолчанию, оповещения по умолчанию и метрики, отображаемые на панелях мониторинга по умолчанию.

  1. Скачайте файл ama-metrics-settings-configmap.yaml configmap.

  2. Переименуйте файл configmap configmap-controlplane.yaml.

  3. Задайте для параметра minimalingestionprofile значение true.

  4. В разделе default-scrape-settings-enabledубедитесь, что целевые объекты, для которых требуется слом, заданы true.

    Целевые объекты, которые можно задать, являются следующими:

    • controlplane-apiserver
    • controlplane-cluster-autoscaler
    • controlplane-kube-scheduler
    • controlplane-kube-controller-manager
    • controlplane-etcd
  5. В разделе default-targets-metrics-keep-listукажите список метрик для true целевых объектов.

    Например:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds|apiserver_longrunning_requests"
    
  6. Примените файл ConfigMap с помощью команды kubectl apply

    kubectl apply -f configmap-controlplane.yaml
    

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

Сбор конкретных метрик из конкретных целей

  1. Скачайте файл ama-metrics-settings-configmap.yaml configmap.

  2. Переименуйте файл configmap configmap-controlplane.yaml.

  3. Задайте для параметра minimalingestionprofile значение false.

  4. В разделе default-scrape-settings-enabled убедитесь, что целевые объекты, которые вы хотите сканировать, установлены в true.

    Целевые объекты, которые можно задать, являются следующими:

    • controlplane-apiserver
    • controlplane-cluster-autoscaler
    • controlplane-kube-scheduler
    • controlplane-kube-controller-manager
    • controlplane-etcd
  5. В разделе default-targets-metrics-keep-listукажите список метрик для true целевых объектов.

    Например:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds|apiserver_longrunning_requests"
    
  6. Примените файл configmap:

    kubectl apply -f configmap-controlplane.yaml
    

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

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

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

Примечание.

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

  • Форматирование файла конфигурации. Убедитесь, что в файле конфигурации используется правильное форматирование. Убедитесь, что поля default-targets-metrics-keep-listminimal-ingestion-profileи default-scrape-settings-enabled другие поля правильно заполнены их предполагаемыми значениями.

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

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

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

    Примечание.

    Если вы хотите собрать метрику apiserver_request_duration_seconds или другую метрику корзин, необходимо определить всю серию в рамках семейства гистограмм:

    controlplane-apiserver = "apiserver_request_duration_seconds_bucket|apiserver_request_duration_seconds_sum|apiserver_request_duration_seconds_count"
    
  • Нет доступа к рабочей области Azure Monitor. При включении надстройки можно указать существующую рабочую область, к которым вы не можете получить доступ. В этом сценарии метрики не собираются и пересылаются. Создайте рабочую область для сбора метрик при включении надстройки или при создании кластера.

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

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

  1. Удалите надстройку метрик, которая удаляет метрики Prometheus с помощью az aks update команды:

    az aks update --disable-azure-monitor-metrics --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    
  2. Чтобы отключить сбор метрик плоскости управления в кластере AKS, отмените регистрацию флага функции с помощью команды az feature unregister:

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

Часто задаваемые вопросы

Можно ли собирать метрики контрольной плоскости, используя самостоятельно размещённый Prometheus?

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

Почему агент пользователя недоступен в метриках плоскости управления?

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