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


Включение мониторинга для кластеров Kubernetes

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

С помощью портал Azure можно включить все функции одновременно. Вы также можете включить их по отдельности с помощью Azure CLI, шаблона Azure Resource Manager, Terraform или Политика Azure. Каждый из этих методов описан в этой статье.

Внимание

Кластеры Kubernetes создают большое количество данных журнала, что может привести к значительным затратам, если вы не подходите выборочно к выбору собираемых журналов. Прежде чем включить мониторинг кластера, ознакомьтесь со следующими статьями, чтобы убедиться, что среда оптимизирована для затрат и что вы ограничиваете сбор журналов только нужными данными:

Поддерживаемые кластеры

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

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

Разрешения

Предварительные требования для управляемого решения Prometheus

  • Кластер должен использовать аутентификацию с использованием управляемой учётной записи.
  • Следующие поставщики ресурсов должны быть зарегистрированы в подписке кластера и рабочей области Azure Monitor:
    • Microsoft.ContainerService
    • Microsoft.Insights
    • Microsoft.AlertsManagement
    • Microsoft.Monitor
    • Следующие поставщики ресурсов должны быть зарегистрированы в подписке рабочей области Grafana:
      • Microsoft.Dashboard

Предварительные требования для кластеров Kubernetes с поддержкой Arc

Примечание.

Расширение Managed Prometheus Arc-Enabled Kubernetes не поддерживает следующие конфигурации:

  • Дистрибутивы Red Hat Openshift, включая Azure Red Hat OpenShift (ARO)
  • Узлы Windows*

*Для кластеров с поддержкой ARC с узлами Windows можно настроить Управляемый Prometheus Azure на узле Linux в кластере и настроить сбор метрик с конечных точек метрик, работающих на узлах Windows.

Рабочие области

В следующей таблице описаны рабочие области, необходимые для поддержки управляемого prometheus и аналитики контейнеров. Вы можете создать каждую рабочую область как часть процесса подключения или использовать существующую рабочую область. См. Руководство по проектированию архитектуры рабочей области Log Analytics, чтобы узнать, сколько рабочих областей следует создать и где их разместить.

Функция Рабочая область Примечания.
Управляемый Prometheus Рабочая область Azure Monitor Contributor достаточно разрешений, чтобы включить надстройку для отправки данных в рабочую область Azure Monitor. Вам потребуется разрешение уровня Owner для подключения рабочей области Azure Monitor к Azure Managed Grafana для просмотра метрик. Для этого необходимо, чтобы пользователь, выполняющий шаг подключения, имел возможность назначить управляемой системе идентификацию Grafana роль Monitoring Reader в рабочей области Azure Monitor для выполнения запросов метрик.
Аналитика контейнеров Рабочая область Log Analytics Кластер можно подключить к рабочей области Log Analytics в другой подписке Azure в том же клиенте Microsoft Entra, но необходимо использовать Azure CLI или шаблон Azure Resource Manager. В настоящее время эту конфигурацию невозможно выполнить с помощью портал Azure.

Если вы подключаете существующий кластер к рабочей области Log Analytics в другой подписке, поставщик ресурсов Microsoft.ContainerService должен быть зарегистрирован в подписке в рабочей области Log Analytics. Дополнительные сведения см. в разделе Регистрация поставщика ресурсов.

Список поддерживаемых пар сопоставлений, используемых для рабочей области по умолчанию, см. в разделе Сопоставление регионов, поддерживаемое Container Insights. Сведения о настройке рабочей области с периметром безопасности сети см. в статье "Настройка Azure Monitor с периметром сетевой безопасности".
Управляемая платформа Grafana Рабочая область Azure Managed Grafana Свяжите рабочую область Grafana с рабочей областью Azure Monitor, чтобы сделать метрики Prometheus, собранные из кластера, доступными для панелей мониторинга Grafana.

Включение Prometheus и Grafana

Используйте один из следующих методов, чтобы включить сбор метрик Prometheus из вашего кластера и настроить управляемую Grafana для визуализации метрик. См. Привязка рабочей области Grafana для получения вариантов подключения рабочей области Azure Monitor и рабочей области Azure Managed Grafana.

Внимание

  • При развертывании с помощью шаблона или политики Azure убедитесь, что конечные точки сбора данных, правила сбора данных и ассоциации правил сбора данных именуются MSProm-<Location of Azure Monitor Workspace>-<Name of cluster resource>, иначе процесс подключения не будет выполнен успешно.

  • Если у вас есть один ресурс Azure Monitor, связанный с частным, включение Prometheus не будет работать, если кластер AKS и рабочая область Azure Monitor находятся в разных регионах. Создайте новый DCE и DCRA в одном регионе кластера. Свяжите новый DCE с кластером и присвойите новому DCRA имя configurationAccessEndpoint. См. Включение приватной ссылки для мониторинга Kubernetes в Azure Monitor.

Включение с помощью интерфейса командной строки

Если вы не указываете существующую рабочую область Azure Monitor в следующих командах, будет использоваться рабочая область по умолчанию для группы ресурсов. Если рабочая область по умолчанию еще не существует в регионе кластера, одна с именем в формате DefaultAzureMonitorWorkspace-<mapped_region> будет создана в группе ресурсов с именем DefaultRG-<cluster_region>.

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

  • Требуется Az CLI версии 2.49.0 или более поздней.
  • Расширение aks-preview должно быть удалено из кластеров AKS с помощью команды az extension remove --name aks-preview.
  • Расширение k8s-extension должно быть установлено с помощью команды az extension add --name k8s-extension.
  • Требуется расширение k8s версии 1.4.1 или более поздней.

Необязательные параметры

Каждая из команд AKS и Arc-Enabled Kubernetes разрешает следующие необязательные параметры. Имя параметра отличается для каждого, но их использование совпадает.

Параметр Имя и описание
Ключи аннотаций AKS: --ksm-metric-annotations-allow-list
Дуга: --AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList

Список разделенных запятыми ключей аннотаций Kubernetes, используемых в метрике ресурса kube_resource_annotations. Например, kube_pod_annotations — это метрика заметок для ресурса pod. По умолчанию эта метрика содержит только метки имени и пространства имен. Чтобы включить дополнительные заметки, укажите список имён ресурсов в их множественном числе и ключи заметок Kubernetes, разрешённые для них. Для каждого ресурса можно предоставить только один *, чтобы допускать любые аннотации, но это серьезно влияет на производительность. Например, pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],....
Ключи меток АКС: --ksm-metric-labels-allow-list
Дуга: --AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist

Разделенный запятыми список дополнительных ключей меток Kubernetes, используемых в метрике kube_resource_labels ресурса. Например, kube_pod_labels — это метрика меток для ресурса pod. По умолчанию эта метрика содержит только метки имени и пространства имен. Для включения дополнительных меток предоставьте список имен ресурсов во множественном числе и ключи меток Kubernetes, которые вы хотите разрешить для них. Для каждого ресурса можно предоставить отдельный *, чтобы разрешить любые метки, но это может вызвать серьёзные проблемы с производительностью. Например, pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],....
Правила записи AKS: --enable-windows-recording-rules

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

Кластер AKS

-enable-azure-monitor-metrics Используйте параметр az aks create или az aks update (в зависимости от того, создаете ли вы новый кластер или обновляете существующий кластер), чтобы установить плагин для сбора метрик, который считывает метрики Prometheus.

### Use default Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group>

### Use existing Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <azure-monitor-workspace-name-resource-id> --grafana-resource-id  <grafana-workspace-name-resource-id>

### Use optional parameters
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --ksm-metric-labels-allow-list "namespaces=[k8s-label-1,k8s-label-n]" --ksm-metric-annotations-allow-list "pods=[k8s-annotation-1,k8s-annotation-n]"

Кластер с поддержкой Arc

### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics

## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>

### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"

Для кластеров с поддержкой Azure Arc доступны следующие дополнительные дополнительные параметры:

Параметр Описание По умолчанию Настройка кластера Upstream Arc
ClusterDistribution Распределение кластера. Azure.Cluster.Distribution да
CloudEnvironment Облачная среда для кластера. Azure.Cluster.Cloud да
MountCATrustAnchorsDirectory Следует ли подключать каталог привязок доверия ЦС. true нет
MountUbuntuCACertDirectory Следует ли монтировать каталог сертификатов ЦС Ubuntu. true если не aks_edge дистрибутив. нет

Включение аналитики контейнеров

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

Внимание

Используйте одну из следующих команд, чтобы включить мониторинг кластеров с поддержкой AKS и Arc. Если вы не указываете существующую рабочую область Log Analytics, будет использоваться рабочая область по умолчанию для группы ресурсов. Если рабочая область по умолчанию еще не существует в регионе кластера, она будет создана с именем в формате DefaultWorkspace-<GUID>-<Region>.

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

  • Azure CLI версии 2.43.0 или более поздней
  • Проверка подлинности управляемого удостоверения по умолчанию используется в CLI версии 2.49.0 или более поздней.
  • Расширение Azure k8s версии 1.3.7 или более поздней
  • В версии k8s-extension 1.43.0 или более поздней, по умолчанию используется аутентификация с управляемым удостоверением.
  • Проверка подлинности с управляемым удостоверением не поддерживается для кластеров Kubernetes с поддержкой Arc, использующих ARO (Azure Red Hat Openshift) или узлы Windows. Используйте устаревшую проверку подлинности.
  • Для CLI версии 2.54.0 или выше схема ведения журнала будет настроена для ContainerLogV2 с использованием ConfigMap.

Примечание.

Схему ContainerLogV2 для кластера можно включить с помощью правила сбора данных кластера (DCR) или ConfigMap. Если оба параметра включены, ConfigMap будет иметь приоритет. Журналы stdout и stderr будут приниматься только в таблицу ContainerLog, если DCR и ConfigMap явно установлены в положение "выключено".

Кластер AKS

### Use default Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name>

### Use existing Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>

### Use legacy authentication
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false

Пример

az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

Кластер с поддержкой Arc

### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers

### Use existing Log Analytics workspace
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=<workspace-resource-id>

### Use managed identity authentication (default as k8s-extension version 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 amalogs.useAADAuth=true

### Use advanced 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.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi

### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
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=<customMountPath>

См. раздел "Запросы и ограничения ресурсов" диаграммы Helm для доступных параметров конфигурации.

Пример

az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

Кластер с поддержкой Arc с прокси-сервером с поддержкой Arc

Если кластер настроен с помощью перенаправленного прокси-сервера, то параметры прокси-сервера автоматически применяются к расширению. В случае кластера с AMPLS +proxy следует игнорировать конфигурацию прокси-сервера. Подключение расширения с параметром 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

Кластер с поддержкой Arc с узлами ARO или OpenShift или Windows

Проверка подлинности управляемого удостоверения не поддерживается для кластеров Kubernetes с поддержкой Arc с помощью ARO (Azure Red Hat OpenShift) или Узлов Windows или OpenShift. Используйте устаревшую проверку подлинности, указав 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

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

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

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

Включение полного мониторинга с помощью портал Azure

Новый кластер AKS (Prometheus, аналитика контейнеров и Grafana)

При создании кластера AKS на портале Azure включите журналы контейнеров, включите метрики Prometheus, установите флажки "Включить Grafana" и "Включить рекомендуемые оповещения " по умолчанию на вкладке "Мониторинг".

Снимок экрана: вкладка

Существующий кластер (Prometheus, аналитика контейнеров и Grafana)

  1. Перейдите к кластеру на портал Azure.
  2. В меню службы выберите Монитор>Настройки монитора.
  3. Для вас выбраны метрики Prometheus, Grafana и журналы контейнеров и события. Если у вас есть рабочая область Azure Monitor, рабочая область Grafana и рабочая область Log Analytics, они будут выбраны для вас.
  4. Выберите дополнительные параметры , если вы хотите выбрать альтернативные рабочие области или создать новые. Параметры профилей ведения журнала и классических профилей позволяют изменять сведения о коллекции по умолчанию, чтобы снизить затраты на мониторинг. Дополнительные сведения см. в разделе "Включение параметров оптимизации затрат" в аналитике контейнеров.
  5. Выберите Настроить.

Включение коллекции метрик Windows (предварительная версия)

Примечание.

В windows-exporter-daemonset.yaml нет предела для ЦП или памяти, поэтому он может перегружать узлы Windows.
Дополнительные сведения см. в разделе "Резервирование ресурсов"

При развертывании рабочих нагрузок задайте ограничения памяти ресурсов и ЦП для контейнеров. Это также вычитает из параметра NodeAllocatable и помогает планировщику кластера определить, какие поды следует размещать на каких узлах. Планирование подов без ограничений может перегрузить узлы Windows, и в крайних случаях узлы могут стать нестабильными.

Начиная с версии 6.4.0-main-02-22-2023-3ee44b9e контейнера надстройки Managed Prometheus (prometheus_collector) для кластеров AKS, была включена поддержка сбора метрик в Windows. Подключение к надстройке метрик Azure Monitor позволяет модулям pod Windows DaemonSet запускаться в пулах узлов. Поддерживаются Windows Server 2019 и Windows Server 2022. Выполните следующие действия, чтобы разрешить подам собирать метрики с Windows узловых пулов.

  1. Вручную установите "windows-exporter" на узлах AKS для доступа к метрикам Windows, развернув файл YAML "windows-exporter-daemonset". Включите следующие сборщики:

    • [defaults]
    • container
    • memory
    • process
    • cpu_info

    Дополнительные коллекционеры представлены в статье Prometheus Exporter для Windows-метрик.

    Разверните файл windows-exporter-daemonset YAML. Обратите внимание, что если на узле применены пятна, необходимо применить соответствующие допуски.

        kubectl apply -f windows-exporter-daemonset.yaml
    
  2. Примените ama-metrics-settings-configmap к вашему кластеру. Установите для windowsexporter и windowskubeproxy логических значений значение true. Дополнительные сведения см. в разделе Metrics add-on settings configmap.

  3. Включите правила записи, необходимые для встроенных панелей мониторинга:

    • При подключении с помощью интерфейса командной строки включите этот параметр --enable-windows-recording-rules.
    • При подключении с помощью шаблона ARM, Bicep или политики Azure установите enableWindowsRecordingRules равным true в файле параметров.
    • Если кластер уже подключен, используйте этот шаблон ARM и этот файл параметров для создания групп правил. Это добавит необходимые правила записи и не является операцией ARM в кластере и не влияет на текущее состояние мониторинга кластера.
  4. [Только для узлов Windows в кластерах с поддержкой ARC] Если вы включаете Managed Prometheus для кластера с поддержкой ARC, можно настроить Управляемый Prometheus, который работает на узле Linux в кластере, чтобы собирать метрики из конечных точек на узлах Windows. Добавьте следующую scrape-задачу в ama-metrics-prometheus-config-configmap.yaml и примените configmap к вашему кластеру.

  scrape_configs:
    - job_name: windows-exporter
      scheme: http
      scrape_interval: 30s
      label_limit: 63
      label_name_length_limit: 511
      label_value_length_limit: 1023
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__meta_kubernetes_node_name]
        target_label: instance
      - action: keep
        source_labels: [__meta_kubernetes_node_label_kubernetes_io_os]
        regex: windows
      - source_labels:
        - __address__
        action: replace
        target_label: __address__
        regex: (.+?)(\:\d+)?
        replacement: $$1:9182
kubectl apply -f ama-metrics-prometheus-config-configmap.yaml

Проверка развертывания

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

Управляемый Prometheus

Убедитесь, что daemonSet был развернут правильно в пулах узлов Linux

kubectl get ds ama-metrics-node --namespace=kube-system

Количество podов должно быть равно количеству узлов Linux в кластере. Выходные данные должны выглядеть примерно так:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-node   1         1         1       1            1           <none>          10h

Убедитесь, что узлы Windows были развернуты правильно

kubectl get ds ama-metrics-win-node --namespace=kube-system

Число модулей pod должно быть равно количеству узлов Windows в кластере. Выходные данные должны выглядеть примерно так:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME                   DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-win-node   3         3         3       3            3           <none>          10h

Убедитесь, что два ReplicaSets были развернуты для Prometheus

kubectl get rs --namespace=kube-system

Выходные данные должны выглядеть примерно так:

User@aksuser:~$kubectl get rs --namespace=kube-system
NAME                            DESIRED   CURRENT   READY   AGE
ama-metrics-5c974985b8          1         1         1       11h
ama-metrics-ksm-5fcf8dffcd      1         1         1       11h

Аналитика контейнеров

Убедитесь, что daemonSets были развернуты правильно в пулах узлов Linux

kubectl get ds ama-logs --namespace=kube-system

Количество podов должно быть равно количеству узлов Linux в кластере. Выходные данные должны выглядеть примерно так:

User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-logs   2         2         2         2            2           <none>          1d

Убедитесь, что узлы Windows были развернуты правильно

kubectl get ds ama-logs-windows --namespace=kube-system

Число модулей pod должно быть равно количеству узлов Windows в кластере. Выходные данные должны выглядеть примерно так:

User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR     AGE
ama-logs-windows           2         2         2         2            2       <none>            1d

Проверка развертывания решения аналитики контейнеров

kubectl get deployment ama-logs-rs --namespace=kube-system

Выходные данные должны выглядеть примерно так:

User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
ama-logs-rs   1/1     1            1           24d

Просмотр конфигурации с помощью CLI

Используйте команду aks show, чтобы узнать, включено ли решение, идентификатор ресурса рабочей области Log Analytics и сводную информацию о кластере.

az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>

Команда вернет сведения о решении в формате JSON. Этот addonProfiles раздел должен содержать сведения о omsagent как в следующем примере.

"addonProfiles": {
    "omsagent": {
        "config": {
            "logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
            "useAADAuth": "true"
        },
        "enabled": true,
        "identity": null
    },
}

Ресурсы выделены

При включении мониторинга в подписке создаются следующие ресурсы:

Имя ресурса Тип ресурса Группа ресурсов Регион или расположение Описание
MSCI-<aksclusterregion>-<clustername> Правило сбора данных То же, что и кластер То же, что и рабочая область Log Analytics Это правило сбора данных предназначено для сбора журналов агентом Azure Monitor, который использует рабочую область Log Analytics в качестве назначения и связан с ресурсом кластера AKS.
MSPROM-<aksclusterregion>-<clustername> Правило сбора данных То же, что и кластер То же, что и рабочая область Azure Monitor Это правило сбора данных предназначено для сбора метрик prometheus с помощью надстройки метрик, которая имеет выбранную рабочую область Azure Monitor в качестве назначения, а также связана с ресурсом кластера AKS
MSPROM-<aksclusterregion>-<clustername> Конечная точка сбора данных То же, что и кластер То же, что и рабочая область Azure Monitor Эта конечная точка сбора данных используется приведенным выше правилом сбора данных для сбора метрик Prometheus из аддона метрик.

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

Имя ресурса Тип ресурса Группа ресурсов Регион или расположение Описание
<azuremonitor-workspace-name> Правило сбора данных <MA_azuremonitor-workspace-name>_<azuremonitor-workspace-region>_управляется То же, что и рабочая область Azure Monitor DCR, созданный при использовании сервера OSS Prometheus для удаленной записи в рабочую область Azure Monitor.
<azuremonitor-workspace-name> Конечная точка сбора данных <MA_azuremonitor-workspace-name>_<azuremonitor-workspace-region>_управляется То же, что и рабочая область Azure Monitor DCE, созданный при использовании сервера OSS Prometheus для удаленной записи в рабочую область Azure Monitor.

Различия между кластерами Windows и Linux

Ниже приведены основные отличия мониторинга кластера Windows Server от мониторинга кластера Linux.

  • Windows не имеет метрики RSS памяти. В результате он недоступен для узлов и контейнеров Windows. Доступен показатель рабочего набора.
  • Сведения о емкости хранилища диска недоступны для узлов Windows.
  • Контролируются только среды pod, а не среды Docker.
  • В предварительной версии поддерживается не более 30 контейнеров Windows Server. Это ограничение не распространяется на контейнеры Linux.

Примечание.

Поддержка аналитики контейнеров для операционной системы Windows Server 2022 доступна в предварительной версии.

Контейнеризированный агент Linux (pod ReplicaSet) делает API-вызовы ко всем Windows-узлам через защищенный порт Kubelet (10250) внутри кластера для сбора метрик производительности узлов и контейнеров. Безопасный порт Kubelet (:10250) должен быть открыт в виртуальной сети кластера как для входящих, так и исходящих подключений для сбора метрик, связанных с производительностью узлов Windows и контейнеров.

Если у вас есть кластер Kubernetes с узлами Windows, просмотрите и настройте группу безопасности сети и политики сети, чтобы убедиться, что безопасный порт Kubelet (:10250) открыт для входящего и исходящего трафика в виртуальной сети кластера.

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

  • Если при попытке подключить решение возникают проблемы, ознакомьтесь с руководством по устранению неполадок.
  • После включения мониторинга, который собирает сведения о работоспособности и потребление кластера AKS и работающих в нем рабочих нагрузок, изучите принципы работы Container Insights.