Мониторинг кластера Nexus Kubernetes
Каждый кластер Nexus Kubernetes состоит из нескольких слоев:
- виртуальные машины;
- Слой Kubernetes
- Модули pod приложений
Рис. Пример кластера Nexus Kubernetes
В экземпляре кластеры Nexus Kubernetes доставляются с необязательным решением для наблюдения Container Insights. Служба Container Insights записывает журналы и метрики из кластеров и рабочих нагрузок Nexus Kubernetes. Это исключительно ваше усмотрение, следует ли включить это средство или развернуть собственный стек телеметрии.
Кластер Nexus Kubernetes со средством мониторинга Azure выглядит следующим образом:
Рис. Кластер 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"]
Дополнительные ресурсы
- Ознакомьтесь с документацией по книгам, а затем можно использовать примеры книг оператора Nexus для телеметрии Оператора Nexus.
- Просмотрите оповещения Azure Monitor, как создать правила генерации оповещений Azure Monitor и использовать примеры шаблонов оповещений оператора Nexus.