Настройка сетевого наблюдения для Служба Azure Kubernetes (AKS) — BYO Prometheus и Grafana

Наблюдение за сетями AKS используется для сбора данных сетевого трафика кластера AKS. Мониторинг сети обеспечивает централизованную платформу для мониторинга работоспособности приложений и сети. Prometheus собирает метрики наблюдаемости сети AKS, а Grafana визуализирует их. Поддерживаются плоскость данных Cilium и не Cilium. Из этой статьи вы узнаете, как включить надстройку "Наблюдение за сетями" и использовать BYO Prometheus и Grafana для визуализации срезированных метрик.

Примечание.

Начиная с Kubernetes версии 1.29 функция наблюдения за сетями больше не поддерживает использование Prometheus и Grafana. Однако его можно включить с помощью предложения Azure Managed Prometheus и Grafana.

Внимание

Наблюдаемость сети AKS в настоящее время доступна в предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

Дополнительные сведения о наблюдаемости сети AKS см. в статье "Что такое Служба Azure Kubernetes (AKS) сетевое наблюдение?.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  • Минимальная версия Azure CLI, необходимая для действий, описанных в этой статье, — 2.44.0. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

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

Внимание

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

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

# Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

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

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

Используйте az feature show, чтобы проверка состояние регистрации флага функции:

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

Подождите, пока функция будет зарегистрирована до предыдущей статьи.

{
  "id": "/subscriptions/23250d6d-28f0-41dd-9776-61fc80805b6e/providers/Microsoft.Features/providers/Microsoft.ContainerService/features/NetworkObservabilityPreview",
  "name": "Microsoft.ContainerService/NetworkObservabilityPreview",
  "properties": {
    "state": "Registering"
  },
  "type": "Microsoft.Features/providers/features"
}

При регистрации компонента обновите регистрацию поставщика ресурсов Microsoft.ContainerService с помощью az provider register:

az provider register -n Microsoft.ContainerService

Создание или изменение группы ресурсов

Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими. Создайте группу ресурсов с помощью команды az group create . В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.

az group create \
    --name myResourceGroup \
    --location eastus

Создание кластера AKS

Создайте кластер AKS с помощью команды az aks create . В следующем примере создается кластер AKS с именем myAKSCluster в группе ресурсов myResourceGroup :

Кластеры, отличные от Cilium, поддерживают включение наблюдения за сетями в существующем кластере или во время создания нового кластера.

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

Используйте az aks create в следующем примере, чтобы создать кластер AKS с сетевой наблюдаемостью и не Cilium.

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --location eastus \
    --generate-ssh-keys \
    --network-plugin azure \
    --network-plugin-mode overlay \
    --pod-cidr 192.168.0.0/16 \
    --enable-network-observability

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

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

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --enable-network-observability 

Получение учетных данных кластера

az aks get-credentials --name myAKSCluster --resource-group myResourceGroup

Включение визуализации в Grafana

Используйте следующий пример, чтобы настроить задания скребка в Prometheus и включить визуализацию в Grafana для кластера AKS.

Примечание.

В следующем разделе требуются установки Prometheus и Grafana.

  1. Добавьте следующее задание скребка в существующую конфигурацию Prometheus и перезапустите сервер Prometheus:

    scrape_configs:
      - job_name: "network-obs-pods"
        kubernetes_sd_configs:
          - role: pod
        relabel_configs:
          - source_labels: [__meta_kubernetes_pod_container_name]
            action: keep
            regex: kappie(.*)
          - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
            separator: ":"
            regex: ([^:]+)(?::\d+)?
            target_label: __address__
            replacement: ${1}:${2}
            action: replace
          - source_labels: [__meta_kubernetes_pod_node_name]
            action: replace
            target_label: instance
        metric_relabel_configs:
          - source_labels: [__name__]
            action: keep
            regex: (.*)
    
  2. В целевых объектах Prometheus проверьте наличие сетевых pod-obs-pod .

  3. Войдите в Grafana и импортируйте панель мониторинга наблюдения за сетями с идентификатором 18814.

Очистка ресурсов

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

  az group delete \
    --name myResourceGroup

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

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