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


Мониторинг кластера Nexus Kubernetes

Каждый кластер Nexus Kubernetes состоит из нескольких слоев:

  • виртуальные машины;
  • Слой Kubernetes
  • Модули pod приложений

Снимок экрана: пример кластера Nexus Kubernetes.

Рис. Пример кластера Nexus Kubernetes

В экземпляре кластеры Nexus Kubernetes доставляются с необязательным решением для наблюдения Container Insights. Служба Container Insights записывает журналы и метрики из кластеров и рабочих нагрузок Nexus Kubernetes. Это исключительно ваше усмотрение, следует ли включить это средство или развернуть собственный стек телеметрии.

Кластер Nexus Kubernetes со средством мониторинга Azure выглядит следующим образом:

Снимок экрана: кластер Nexus Kubernetes с инструментами мониторинга.

Рис. Кластер Nexus Kubernetes с инструментами мониторинга

Подключение расширений с помощью интерфейса командной строки с помощью проверки подлинности управляемого удостоверения

Документация по началу с Azure CLI, установка ее в нескольких операционных системах и установка расширений CLI.

Установите последнюю версию необходимых расширений CLI.

Мониторинг кластера Nexus Kubernetes

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

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

  • Доступ администратора кластера к кластеру Nexus Kubernetes.

  • Чтобы использовать серверы с поддержкой Azure Arc, зарегистрируйте в подписке следующие поставщики ресурсов Azure:

    • Microsoft.HybridCompute
    • Microsoft.GuestConfiguration
    • Microsoft.HybridConnectivity

Зарегистрируйте этих поставщиков ресурсов, если это не сделано ранее:

az account set --subscription "{the Subscription Name}"
az provider register --namespace 'Microsoft.HybridCompute'
az provider register --namespace 'Microsoft.GuestConfiguration'
az provider register --namespace 'Microsoft.HybridConnectivity'
  • При необходимости назначьте субъект-службу Azure следующим встроенным ролям Azure. Назначьте субъект-службу группе ресурсов Azure, на которую подключены компьютеры:
Роль Требуется
Администратор или участник подключенных компьютеров Azure Подключение сервера виртуальной машины кластера Nexus Kubernetes с поддержкой Arc в группе ресурсов и установка агента мониторинга Azure (AMA)
Участник мониторинга или участник Создайте правило сбора данных (DCR) в группе ресурсов и свяжите с ним серверы с поддержкой Arc.
Администратор доступа пользователей и участник политики ресурсов Необходимо, если вы хотите использовать назначения политик Azure, чтобы обеспечить связь DCR с компьютерами с поддержкой Arc.
Участник расширения Kubernetes Требуется для развертывания расширения K8s для Аналитики контейнеров

Мониторинг кластера Nexus Kubernetes

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

Оператор должен обеспечить настройку средств мониторинга в кластерах Nexus Kubernetes.

Container Insights хранит свои данные в рабочей области Log Analytics. Данные журнала передаются в рабочую область, идентификатор ресурса которой вы указали во время установки расширения Container Insights. Кроме того, воронки данных в рабочую область по умолчанию в группе ресурсов, связанной с подпиской (в зависимости от расположения Azure).

Пример для восточной части США может выглядеть следующим образом:

  • Имя рабочей области Log Analytics: DefaultWorkspace-GUID-EUS<>
  • Имя группы ресурсов: DefaultResourceGroup-EUS

Выполните следующую команду, чтобы получить предварительно существующий идентификатор ресурса рабочей области Log Analytics:

az login

az account set --subscription "<Subscription Name or ID the Log Analytics workspace is in>"

az monitor log-analytics workspace show --workspace-name "<Log Analytics workspace Name>" \
  --resource-group "<Log Analytics workspace Resource Group>" \
  -o tsv --query id

Для развертывания Аналитики контейнеров и просмотра данных в применимой рабочей области Log Analytics требуются определенные назначения ролей в вашей учетной записи. Например, назначение роли "Участник". Инструкции по назначению обязательных ролей см. в следующих инструкциях.

  • Роль участника Log Analytics: необходимые разрешения для включения мониторинга контейнеров в кластере CNF (подготовлено).
  • Роль читателя Log Analytics: не члены роли участника Log Analytics получают разрешения на просмотр данных в рабочей области Log Analytics после включения мониторинга контейнеров.

Установка расширения кластера

Войдите в Azure Cloud Shell для доступа к кластеру:

az login

az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"

Теперь разверните расширение Container Insights в подготовленном кластере Nexus Kubernetes с помощью любой из следующих двух команд:

С предварительно созданной клиентом рабочей области Log Analytics

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings logAnalyticsWorkspaceResourceID="<Log Analytics workspace Resource ID>" \
  amalogsagent.useAADAuth=true

Использование рабочей области Log Analytics по умолчанию

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings amalogsagent.useAADAuth=true

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

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

az k8s-extension show --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters

Найдите состояние подготовки "Успешно" для расширения. Команда "k8s-extension create" может также вернуть состояние.

Настройка коллекции журналов и метрик

Container Insights предоставляет функции конечных пользователей для точной настройки коллекции журналов и метрик из кластеров Nexus Kubernetes. Дополнительные сведения см. в инструкциях по настройке сбора данных агента аналитики контейнеров.

Примечание.

Служба Container Insights не собирает журналы из kube-system пространства имен по умолчанию. Чтобы собирать журналы из kube-system пространства имен, необходимо настроить агент для сбора журналов из kube-system пространства имен. Это можно сделать, удалив kube-system пространство имен из excludedNamespaces поля в ConfigMap после configMap подхода configuraiton .

[log_collection_settings]
  [log_collection_settings.stdout]
    # In the absense of this configmap, default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stdout' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absense of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namepace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

  [log_collection_settings.stderr]
    # Default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stderr' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absense of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namepace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

Дополнительные ресурсы