Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment utiliser les événements Kubernetes pour surveiller et résoudre les problèmes dans vos clusters Azure Kubernetes Service (AKS).
Que sont les événements Kubernetes ?
Les événements sont l’une des sources les plus importantes pour le monitoring et la résolution des problèmes dans Kubernetes. Ils capturent et enregistrent des informations sur le cycle de vie de différents objets Kubernetes, tels que les pods, les nœuds, les services et les déploiements. En monitorant les événements, vous pouvez obtenir une visibilité sur les activités de votre cluster, identifier et résoudre des problèmes efficacement.
Les événements Kubernetes ne persistent pas tout au long du cycle de vie de votre cluster, car il n’y a pas de mécanisme de conservation. Les événements ne sont disponibles que pendant une heure après leur génération. Pour stocker les événements plus longtemps, activez Container Insights.
Objets d’événements Kubernetes
Le tableau suivant liste certains objets d’événements Kubernetes clés :
| Nom du champ | Descriptif |
|---|---|
| type | Le type est basé sur la gravité de l’événement : Les événements de type Avertissement signalent des situations potentiellement problématiques, comme la défaillance répétée d’un pod ou un nœud à court de ressources. Ils nécessitent une attention, mais il est possible qu’ils n’entraînent pas de défaillance immédiate. Les événements de type Normal représentent des opérations de routine, comme un pod en cours de planification ou le scale-up d’un déploiement. Ils indiquent généralement un comportement de cluster sain. |
| reason | Raison pour laquelle l’événement a été généré. Par exemple, FailedScheduling ou CrashLoopBackoff. |
| message | Message lisible par les êtres humains qui décrit l’événement. |
| espace de noms | Espace de noms de l’objet Kubernetes auquel l’événement est associé. |
| firstSeen | Horodateur lorsque l’événement a été observé pour la première fois. |
| lastSeen | Horodateur de la dernière observation de l’événement. |
| reportingController | Nom du contrôleur qui a signalé l’événement. Par exemple : kubernetes.io/kubelet. |
| object | Nom de l’objet Kubernetes auquel l’événement est associé. |
Pour plus d’informations, consultez la documentation Kubernetes officielle.
Afficher les événements Kubernetes
Pour lister tous les événements de votre cluster, utilisez la commande kubectl get events.
En supposant que votre cluster est déjà créé et disponible (par prérequis doc), obtenez les informations d’identification (notez que l’indicateur --overwrite-existing est défini pour éviter les erreurs kubeconfig) :
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing
Répertoriez maintenant tous les événements de votre cluster :
kubectl get events
Résultats :
LAST SEEN TYPE REASON OBJECT MESSAGE
xxm Normal Scheduled pod/my-pod-xxxxx Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm Normal Pulled pod/my-pod-xxxxx Container image "nginx" already present on machine
xxm Normal Created pod/my-pod-xxxxx Created container nginx
xxm Normal Started pod/my-pod-xxxxx Started container nginx
...
Pour examiner les événements d’un pod spécifique, recherchez d’abord le nom du pod, puis utilisez la commande kubectl describe pod.
Répertoriez les pods dans le namespace actuel :
kubectl get pods
Résultats :
NAME READY STATUS RESTARTS AGE
my-pod-xxxxx 1/1 Running 0 xxm
nginx-deployment-xxxxx 1/1 Running 0 xxm
...
Remplacez <pod-name> ci-dessous par le nom de votre pod réel. Pour l’automatisation, voici un exemple pour le premier pod de la liste :
POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME
Meilleures pratiques pour la résolution des problèmes relatifs à des événements
Filtrage des événements pour la pertinence
Vous pouvez avoir plusieurs espaces de noms et services en cours d’exécution dans votre cluster AKS. Le filtrage des événements en fonction du type d’objet, de l’espace de noms ou de la raison peut être utile pour afficher uniquement les informations les plus pertinentes dans les résultats.
Par exemple, vous pouvez utiliser la commande suivante pour filtrer les événements dans l’espace de noms par défaut :
kubectl get events --namespace default
Automatisation des notifications d’événements
Pour assurer une réponse rapide aux événements critiques dans votre cluster AKS, configurez des notifications automatisées. Azure offre une intégration avec des services de monitoring et d’alerte tels qu’Azure Monitor. Vous pouvez configurer des alertes pour qu’elles se déclenchent en fonction de modèles d’événements spécifiques. Ainsi, vous êtes immédiatement informé des questions primordiales qui nécessitent une attention particulière.
Évaluation régulière des événements
Prenez l’habitude d’examiner régulièrement des événements dans votre cluster AKS. Cette approche proactive peut vous aider à identifier des tendances, à détecter des problèmes potentiels de manière anticipée et à empêcher les escalades. En maîtrisant les événements, vous pouvez maintenir la stabilité et les performances de vos applications.
Étapes suivantes
Maintenant que vous comprenez les événements Kubernetes, vous pouvez continuer votre parcours de monitoring et d’observabilité en activant Container Insights.