Surveiller un cluster Nexus Kubernetes
Chaque cluster Nexus Kubernetes est constitué de plusieurs couches :
- Machines virtuelles
- Couche Kubernetes
- Pods d’application
Illustration : exemple de cluster Nexus Kubernetes
Sur une instance, les clusters Nexus Kubernetes sont fournis avec une solution d’observabilité facultative Container Insights. Container Insights capture les journaux et les métriques des clusters Nexus Kubernetes et des charges de travail. Il vous appartient d'activer cet outil ou de déployer votre propre pile de télémétrie.
Le cluster Nexus Kubernetes avec l’outil de surveillance Azure ressemble à ce qui suit :
Illustration : cluster Nexus Kubernetes avec outils de surveillance
Intégration d’extension à l’interface CLI en utilisant l’authentification de l’identité managée
Documentation pour commencer avec Azure CLI, comment l’installer sur plusieurs systèmes d’exploitation et comment installer des extensions CLI.
Installez la dernière version des extensions CLI nécessaires.
Surveiller un cluster Nexus Kubernetes
Ce guide pratique fournit des étapes pour activer les agents de surveillance pour la collecte des journaux système à partir de ces VMs à l’aide d’Azure Monitoring Agent. Les instructions décrivent en détail comment configurer la collecte de données dans un espace de travail Log Analytics.
Prérequis
Accès de l’administrateur du cluster au cluster Nexus Kubernetes.
Pour utiliser des serveurs Azure Arc, enregistrez les fournisseurs de ressources Azure suivants dans votre abonnement :
- Microsoft.HybridCompute
- Microsoft.GuestConfiguration
- Microsoft.HybridConnectivity
Enregistrez ces fournisseurs de ressources, si ce n’est pas déjà fait :
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'
- Attribuez un principal de service Azure aux rôles intégrés Azure suivants, si nécessaire. Attribuez le principal de service au groupe de ressources Azure qui contient les machines à connecter :
Rôle | Nécessaire pour |
---|---|
Administrateur des ressources de la machine connectée à Azure ou Contributeur | Connecter le serveur de machines virtuelles Nexus Kubernetes cluster compatible avec Arc dans le groupe de ressources et installer l'agent de surveillance Azure (AMA) |
Contributeur de supervision ou Contributeur | Créez une règle de collecte de données (DCR) dans le groupe de ressources et associez des serveurs avec Arc à celui-ci |
Administrateur de l’accès utilisateur et Contributeur de stratégie de ressources ou Contributeur | Nécessaire si vous souhaitez utiliser des attributions de stratégie Azure pour vous assurer qu’un DCR est associé à des machines avec Arc |
Contributeur d’extension Kubernetes | Nécessaire pour déployer l’extension K8s pour Container Insights |
Surveiller un cluster Nexus Kubernetes
Prérequis
L'opérateur doit s'assurer de certains prérequis pour configurer les outils de monitoring sur les Nexus Kubernetes Clusters.
Container Insights stocke ses données dans un espace de travail Log Analytics. Les données du journal circulent dans l’espace de travail dont vous avez fourni l’ID de ressource lors de l’installation de l’extension Container Insights. Dans le cas contraire, les données sont acheminées vers un espace de travail par défaut dans le groupe de ressources associé à votre abonnement (en fonction de l'emplacement d'Azure).
Un exemple pour USA Est peut se présenter comme suit :
- Nom de l’espace de travail Log Analytics : DefaultWorkspace-<GUID>-EUS
- Nom du groupe de ressources : DefaultResourceGroup-EUS
Exécutez la commande suivante pour obtenir un identifiant de ressource d’espace de travail Log Analytics pré-existant :
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
Le déploiement de Container Insights et l'affichage des données dans l'espace de travail Log Analytics applicable requièrent certaines attributions de rôles dans votre compte. Par exemple, l’attribution de rôle « Contributeur ». Consultez les instructions pour l’attribution de rôles requis :
- Rôle Contributeur Log Analytics : autorisations nécessaires pour activer la surveillance des conteneurs sur un cluster CNF (provisionné).
- Rôle Lecteur Log Analytics : non membre du rôle Contributeur Log Analytics, recevez des autorisations pour afficher les données dans l’espace de travail Log Analytics une fois que vous avez activé la surveillance du conteneur.
Installation de l’extension du cluster
Connectez-vous à Azure Cloud Shell pour accéder au cluster :
az login
az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"
Maintenant, déployez l'extension Container Insights sur un cluster Nexus Kubernetes provisionné en utilisant l'une des deux commandes suivantes :
Avec l’espace de travail Log Analytics pré-créé par le client
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
Utiliser l’espace de travail Log Analytics par défaut
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
Valider l’extension de cluster
Validez le déploiement réussi de l'activation des agents de surveillance sur les clusters Nexus Kubernetes à l'aide de la commande suivante :
az k8s-extension show --name azuremonitor-containers \
--cluster-name "<Nexus Kubernetes cluster Name>" \
--resource-group "<Nexus Kubernetes cluster Resource Group>" \
--cluster-type connectedClusters
Recherchez l’état d’approvisionnement « Réussi » pour l’extension. La commande « créer une k8s-extension » peut également avoir renvoyé l’état.
Personnaliser la collection de journaux et de métriques
Container Insights fournit aux utilisateurs finaux des fonctionnalités permettant d'affiner la collecte de journaux et de métriques à partir des clusters Nexus Kubernetes. Consultez les instructions de Configuration de la collecte de données de l'agent Container Insights pour plus d'informations.
Remarque
Par défaut, Container Insights ne collecte pas les journaux de l’espace de noms kube-system
. Pour collecter les journaux de l’espace de noms kube-system
, vous devez configurer l’agent pour collecter les journaux de l’espace de noms kube-system
.
Pour ce faire, supprimez l’espace de noms kube-system
du champ excludedNamespaces
dans ConfigMap en suivant l’approche configMap
de configuration .
[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"]
Ressources supplémentaires
- Passez en revue la documentation des classeurs, puis vous pouvez utiliser des exemples de classeurs Télémétrie Opérateur Nexus opérateur.
- Passez en revue les alertes Azure Monitor, comment créer des règles d’alerte Azure Monitor et utiliser des exemples de modèles d’alerte Nexus de l’opérateur.