Compartir a través de


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

Captura de pantalla del clúster de Nexus Kubernetes de ejemplo.

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:

Captura de pantalla del clúster de Nexus Kubernetes con herramientas de supervisión.

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