Supervisión del clúster de Nexus Kubernetes
Cada clúster de Nexus Kubernetes consta de varias capas:
- Virtual Machines (VM)
- Capa de Kubernetes
- Pods de la aplicación
Figura: clúster de Nexus Kubernetes de ejemplo
En una instancia, los clústeres de Nexus Kubernetes se entregan con una solución opcional Container Insights observabilidad. Container Insights captura los registros y las métricas de los clústeres y cargas de trabajo de Nexus Kubernetes. Queda a su discreción habilitar estas herramientas o implementar su propia pila de telemetría.
El clúster de Nexus Kubernetes con la herramienta de supervisión de Azure tiene el siguiente aspecto:
Figura: clúster de Nexus Kubernetes con herramientas de supervisión
Incorporación de extensiones con la CLI mediante la autenticación de identidad administrada
Documentación para empezar con la CLI de Azure, cómo instalarla en varios sistemas operativos y cómo instalar extensiones de la CLI.
Instale la versión más reciente de las extensiones necesarias de la CLI.
Supervisión del clúster de Nexus Kubernetes
En esta guía paso a paso se proporcionan pasos para habilitar los agentes de supervisión para la recopilación de registros del sistema de estas máquinas virtuales mediante Azure Monitoring Agent. Las instrucciones capturan más detalles sobre cómo configurar la recopilación de datos de registro en un área de trabajo de Log Analytics.
Requisitos previos
Acceso de administrador de clústeres al clúster de Nexus Kubernetes.
Para usar servidores habilitados para Azure Arc, registre los siguientes proveedores de recursos de Azure en su suscripción:
- Microsoft.HybridCompute
- Microsoft.GuestConfiguration
- Microsoft.HybridConnectivity
Registre estos proveedores de recursos, si no lo ha hecho anteriormente:
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'
- Asigne una entidad de servicio de Azure a los siguientes roles integrados de Azure, según sea necesario. Asigne la entidad de servicio al grupo de recursos de Azure que tiene las máquinas que se van a conectar:
Role | Necesario para |
---|---|
Administrador de recursos de Azure Connected Machine o Colaborador | Conectar servidor de VM de clúster de Nexus Kubernetes habilitado para Arc en el grupo de recursos e instalar el agente de supervisión de Azure (AMA) |
Colaborador de supervisión o Colaborador | Crear una regla de recopilación de datos (DCR) en el grupo de recursos y asociar servidores habilitados para Arc a él |
Administrador de acceso de usuario y Colaborador de directiva de recursos o Colaborador | Es necesario si desea usar la(s) asignación(es) de directiva(s) de Azure para asegurarse de que una DCR está asociada a máquinas habilitadas para Arc |
Kubernetes Extension Contributor | Necesario para implementar la extensión K8s para Container Insights |
Supervisión del clúster de Nexus Kubernetes
Requisitos previos
Hay ciertos requisitos previos que el operador debe garantizar para configurar las herramientas de supervisión en clústeres de Nexus Kubernetes.
Container Insights almacena sus datos en un área de trabajo de Log Analytics. Los datos de registro fluyen al área de trabajo cuyo identificador de recurso proporcionó durante la instalación de la extensión de Container Insights. De lo contrario, los datos se embudan en un área de trabajo predeterminada en el grupo de recursos asociado a la suscripción (en función de la ubicación de Azure).
Un ejemplo para Este de EE. UU. puede tener el siguiente aspecto:
- Nombre del área de trabajo de Log Analytics: DefaultWorkspace-<GUID>-EUS
- Nombre del grupo de recursos: DefaultResourceGroup-EUS
Ejecute el comando siguiente para obtener un id. de recurso del área de trabajo de Log Analytics existente:
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
Para implementar Container Insights y ver los datos en el área de trabajo de Log Analytics aplicable, es necesario realizar determinadas asignaciones de roles en la cuenta. Por ejemplo, la asignación de roles "Colaborador". Consulte las instrucciones para asignar los roles necesarios:
- Rol Colaborador de Log Analytics: permisos necesarios para habilitar la supervisión de contenedores en un clúster CNF (aprovisionado).
- Rol Lector de Log Analytics: los usuarios que no cuentan con el rol Colaborador de Log Analytics reciben permisos para ver los datos en el área de trabajo de Log Analytics una vez que habilita la supervisión de contenedores.
Instalar la extensión de clúster
Inicie sesión en Azure Cloud Shell para acceder al clúster:
az login
az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"
Ahora, implemente la extensión de Container Insights en un clúster de Nexus Kubernetes aprovisionado mediante cualquiera de los dos comandos siguientes:
Con el área de trabajo de Log Analytics creada previamente por el cliente
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
Usar el área de trabajo predeterminada de 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
Validar la extensión de clúster
Valide la implementación correcta de la habilitación de agentes de supervisión en clústeres de Nexus Kubernetes mediante el siguiente comando:
az k8s-extension show --name azuremonitor-containers \
--cluster-name "<Nexus Kubernetes cluster Name>" \
--resource-group "<Nexus Kubernetes cluster Resource Group>" \
--cluster-type connectedClusters
Busque un estado de aprovisionamiento "Correcto" para la extensión. Es posible que el comando "k8s-extension create" haya devuelto también el estado.
Personalizar recopilación de métricas y registros
Container Insights proporciona funcionalidad a los usuarios finales para ajustar la recopilación de registros y métricas de los clústeres de Kubernetes Nexus. Consulte las instrucciones de Configuración de la recopilación de datos del agente de Container Insights para obtener más información.
Nota:
Container Insights no recopila registros del espacio de nombres kube-system
de forma predeterminada. Para recopilar registros del kube-system
espacio de nombres, debe configurar el agente para recopilar registros del kube-system
espacio de nombres.
Para ello, quite el espacio de nombres kube-system
del campo excludedNamespaces
en ConfigMap siguiendo el enfoque configuración de configMap
.
[log_collection_settings]
[log_collection_settings.stdout]
# In the absence 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 absence 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 namespace: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 absence 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 namespace: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"]
Recursos adicionales
- Revise la documentación de libros y, a continuación, podrá usar los libros Operator Nexus de ejemplo de telemetría de Operator Nexus.
- Revise las alertas de Azure Monitor, cómo crear reglas de alertas de Azure Monitor y usar plantillas de alerta de Operator Nexus de ejemplo.