Аналитика контейнеров Azure Monitor для кластеров Kubernetes с поддержкой Azure Arc

Аналитика контейнеров Azure Monitor Container Insights предоставляет широкие возможности мониторинга для кластеров Kubernetes с поддержкой Azure Arc.

Поддерживаемые конфигурации

  • Аналитика контейнеров Azure Monitor Container Insights поддерживает мониторинг Azure Arc с включенным Kubernetes, как описано в обзорной статье, за исключением функции интерактивных данных. Кроме того, пользователям необязательно иметь разрешения владельца для включения метрик
  • Docker, Moby и CRI-совместимые среды выполнения контейнеров, такие как CRI-O и containerd.
  • Поддерживается исходящий прокси-сервер без аутентификации и исходящий прокси с обычной проверкой подлинности. Исходящий прокси-сервер, для которого требуются доверенные сертификаты, сейчас не поддерживается.

Примечание

В случае миграции с Container Insights на Azure Red Hat OpenShift 4.x также отключите мониторинг, прежде чем продолжать настройку Container Insights в Kubernetes с поддержкой Azure Arc, чтобы предотвратить проблемы с установкой.

Предварительные условия

  • Предварительные требования, перечисленные в обобщенной документации по расширениям кластеров.

  • Рабочая область Log Analytics. Контейнерная аналитика Azure Monitor Container Insights поддерживает рабочую область Log Analytics в регионах, перечисленных на странице продуктов Azure по регионам. Вы можете создать собственную рабочую область с помощью Azure Resource Manager, PowerShell или портала Azure.

  • Назначение роли Участник в подписке Azure, содержащей ресурс Kubernetes с поддержкой Azure Arc. Если рабочая область Log Analytics находится в другой подписке, в группе ресурсов, содержащей рабочую область Log Analytics, необходимо назначить роль участника Log Analytics .

  • Для просмотра данных мониторинга необходимо иметь назначение ролей Log Analytics Reader в рабочей области log Analytics.

  • В дополнение к требованиям к сети Kubernetes с поддержкой Azure Arc необходимо включить следующие конечные точки для исходящего доступа.

    Общедоступное облако Azure

    Конечная точка Порт
    *.ods.opinsights.azure.com 443
    *.oms.opinsights.azure.com 443
    dc.services.visualstudio.com 443
    *.monitoring.azure.com 443
    login.microsoftonline.com 443

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

    Ресурс агента Цель Порт
    global.handler.control.monitor.azure.com Служба контроля доступа 443
    <cluster-region-name>.handler.control.monitor.azure.com Получение правил сбора данных для конкретного кластера AKS 443

    Облако Azure для государственных организаций

    Если ваш ресурс Kubernetes с поддержкой Azure Arc находится в среде Azure для государственных организаций США, для исходящего доступа необходимо включить следующие конечные точки:

    Конечная точка Порт
    *.ods.opinsights.azure.us 443
    *.oms.opinsights.azure.us 443
    dc.services.visualstudio.com 443

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

    Ресурс агента Цель Порт
    global.handler.control.monitor.azure.cn Служба контроля доступа 443
    <cluster-region-name>.handler.control.monitor.azure.cn Получение правил сбора данных для конкретного кластера AKS 443
  • Если вы используете кластер с поддержкой Arc в AKS и ранее установили мониторинг для AKS, не забудьте перед продолжением отключить мониторинг, чтобы избежать проблем во время установки расширения.

  • Если вы ранее развернули контейнерную аналитику Azure Monitor Container Insights в этом кластере с помощью скрипта без расширений кластера, следуйте приведенным здесь инструкциям, чтобы удалить эту диаграмму Helm. Затем можно продолжить создание экземпляра расширения кластера для контейнерной аналитики Azure Monitor Container Insights.

Укажите идентификатор ресурса рабочей области

Выполните следующие команды, чтобы указать полный идентификатор Azure Resource Manager Log Analytics рабочей области.

  1. Перечислите все подписки, к которым у вас есть доступ, с помощью следующей команды:

    az account list --all -o table
    
  2. Перейдите к подписке, в которой размещена рабочая область Log Analytics, с помощью следующей команды:

    az account set -s <subscriptionId of the workspace>
    
  3. В следующем примере отображается список рабочих областей в подписках в формате JSON по умолчанию.

    az resource list --resource-type Microsoft.OperationalInsights/workspaces -o json
    

    В выходных данных найдите интересующее имя рабочей области. idПоле объекта, представляющее идентификатор Azure Resource Manager этой рабочей области log Analytics.

    Совет

    Их id также можно найти в области Обзор рабочей области Log Analytics с помощью портал Azure.

Создание экземпляра расширения

Вариант 1 — со значениями по умолчанию

Этот параметр использует следующие значения по умолчанию:

  • Создает или использует существующую рабочую область log Analytics по умолчанию, соответствующую региону кластера
  • Автоматическое обновление включено для расширения кластера Azure Monitor

Примечание

Проверка подлинности управляемого удостоверения используется по умолчанию в k8s-extension версии 1.43.0 или более поздней.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers

Чтобы использовать проверку подлинности управляемогоconfiguration-settings удостоверения, добавьте параметр следующим образом:

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true

Примечание

Проверка подлинности управляемого удостоверения не поддерживается для кластеров Kubernetes с поддержкой Arc с помощью ARO.

Чтобы использовать устаревшую или неуправляемую проверку подлинности удостоверений для создания экземпляра расширения в кластерах, подключенных к Arc K8S с помощью ARO, используйте приведенные ниже команды, которые не используют управляемое удостоверение. Подключение без интерфейса командной строки не поддерживается для кластеров Kubernetes с поддержкой Arc с ARO. В настоящее время поддерживается только расширение k8s версии 1.3.7 или ниже.

Если вы используете версию расширения k8s выше 1.3.7, понизите версию.

Install the extension with **amalogs.useAADAuth=false**.
az extension add --name k8s-extension --version 1.3.7

Установите расширение с помощью amalogs.useAADAuth=false.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false

Вариант 2. Существующая рабочая область Azure Log Analytics

Вы можете использовать существующую рабочую область Azure Log Analytics в любой подписке, в которой имеется Contributor или более разрешительное назначение ролей.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<armResourceIdOfExistingWorkspace>

Вариант 3. С расширенной конфигурацией

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

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings  amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi

Чтобы получить доступные параметры конфигурации, изучите раздел "запросы и ограничения ресурсов" диаграммы Helm.

Вариант 4 — в Azure Stack Edge

Если кластер Kubernetes с поддержкой Azure Arc находится на Azure Stack Edge, необходимо использовать пользовательский путь подключения /home/data/docker.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=/home/data/docker

Если в кластере настроен прокси-сервер пересылки, параметры прокси-сервера автоматически применяются к расширению. В случае кластера с AMPLS + прокси-сервером конфигурацию прокси-сервера следует игнорировать. Подключение расширения с помощью параметра amalogs.ignoreExtensionProxySettings=trueконфигурации .

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true

Примечание

Если вы явно указываете версию расширения для установки в команде CREATE, убедитесь, что указанная версия >= 2.8.2.

Проверка состояния установки расширения

После успешного создания расширения Azure Monitor для кластера Kubernetes с поддержкой Azure Arc вы можете дополнительно проверить состояние установки с помощью портала Azure или CLI. Для успешной установки должно отображаться состояние "Установлено". Если отображается состояние "Сбой" или (в течение длительного периода) "Ожидание", перейдите к разделу "Устранение неполадок" ниже.

  1. На портале Azure выберите кластер Kubernetes с поддержкой Azure Arc, где устанавливается расширение.
  2. В области ресурсов слева выберите элемент "Расширения" в разделе "Параметры".
  3. Вы увидите расширение с именем azuremonitor-containers в списке с соответствующим состоянием в столбце "Состояние установки".

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

Используйте текущее руководство для переноса существующего экземпляра расширения на проверку подлинности с управляемым удостоверением.

Примечание

Проверка подлинности управляемого удостоверения не поддерживается для кластеров Kubernetes с поддержкой Arc с помощью ARO.

Сначала получите рабочую область Log Analytics, настроенную для расширения Аналитики контейнеров.

az k8s-extension show --name azuremonitor-containers --cluster-name \<cluster-name\> --resource-group \<resource-group\> --cluster-type connectedClusters -n azuremonitor-containers 

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

az k8s-extension create --name azuremonitor-containers --cluster-name \<cluster-name\> --resource-group \<resource-group\> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true logAnalyticsWorkspaceResourceID=\<workspace-resource-id\> 

Удаление экземпляр расширения

Следующая команда удаляет только экземпляр расширения, но не удаляет рабочую область Log Analytics. Данные в ресурсе Log Analytics остаются без изменений.

az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>

Отключенный кластер

Если кластер отключается от Azure в течение > 48 часов, Azure Resource Graph не будет содержать сведения о кластере. В результате на панели Аналитика могут отображаться неверные сведения о состоянии кластера.

Устранение неполадок

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

Дальнейшие действия

  • Включив мониторинг для получения сведений о работоспособности и использовании ресурсов гибридного кластера Kubernetes с поддержкой Azure Arc и рабочих нагрузок на них, узнайте, как использовать Container Insights.

  • По умолчанию контейнерный агент собирает журналы stdout/stderr всех контейнеров, работающих во всех пространствах имен, за исключением kube-system. Чтобы настроить сбор журналов контейнеров для конкретных пространств имен, ознакомьтесь с разделом Конфигурация агента Container Insights, чтобы настроить необходимые параметры сбора данных в файле конфигурации ConfigMap.

  • Чтобы извлечь и проанализировать метрики Prometheus из кластера, см. раздел Настройка извлечения метрик Prometheus