Introduction
Ce document décrit la procédure de dépannage de Kubernetes Pod Not Ready vu dans la fonction de contrôle des politiques (PCF).
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- PCF
- Plate-forme de déploiement cloud native 5G (CNDP)
- Dockers et Kubernetes
Composants utilisés
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- PCF REL_2023.01.2
- Kubernetes v1.24.6
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Dans cette configuration, le protocole CNDP héberge PCF.
Lorsqu'un Pod Kubernetes est à l'état « Non prêt », cela signifie que le Pod n'est pas actuellement en mesure de servir le trafic parce qu'un ou plusieurs de ses conteneurs ne sont pas à l'état prêt. Cela peut être dû à diverses raisons, telles que des conteneurs qui sont toujours en cours de démarrage, l'échec des contrôles d'intégrité ou la rencontre d'erreurs.
Problème
Vous voyez des alertes sur l'état CEE (Common Execution Environment) pour les pods Kubernetes (K8), non prêt.
Command:
cee# show alerts active summary summary
Example:
[pcf01/pcfapp] cee# show alerts active summary
NAME UID SEVERITY STARTS AT DURATION SOURCE SUMMARY
----------------------------------------------------------------------------------------------------------
k8s-pod-not-ready 35b143f885ec critical 06-13T08:22:05 mirror-maker-0 Pod pcf-pcf/mirror-maker-0 has been in a non-ready state for longer than 1 minute
k8s-pod-crashing-loop 990b651ad5f5 critical 04-19T22:51:08 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-pod-restarting a44d31701faf minor 04-19T01:55:38 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-deployment-replic b8f04c540905 critical 04-06T01:53:48 pcf01-master-2 Deployment cee-irv1bmpcf/pgpool has not matched the expected number of replicas for longer th...
k8s-pod-not-ready cb2c8ee4a9c9 critical 04-06T01:53:48 pgpool-65fc8b8d5f-2w9 Pod cee-pcf/pgpool-65fc8b8d5f-2w9nq has been in a non-ready state for longer than 5 min...
Analyse
Approche 1
Après vous être connecté à un noeud Kubernetes (K8s), vérifiez les alertes d'un noeud qui est actuellement à l'état « Non prêt ».
Il est conseillé de vérifier tout processus de mise à niveau ou de maintenance. À ce moment, le pod peut être mis hors ligne afin d'appliquer des mises à jour, d'installer de nouveaux logiciels ou d'effectuer d'autres tâches nécessaires. ou des activités de maintenance en cours qui peuvent avoir un impact sur la disponibilité du pod.
Les pods miroirs sont censés être dans l'état mentionné pendant l'activité de mise à niveau du site sur le site homologue (GR).
Connectez-vous au noeud maître et vérifiez l'état du pod miroir.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep mirror
NAMESPACE NAME READY STATUS RESTARTS AGE
pcf-pcf01 mirror-maker-0 0/1 Running 1 5d23h
#Post upgrade Activity mirror-maker pod status
cloud-user@pcf01-master-1:~$ kubectl get pods -A|grep mirror
pcf-pcf01 mirror-maker-0 1/1 Running 1 6d.
Approche 2
Si vous recevez des alertes indiquant qu'un pod Kubernetes (K8s) n'est pas prêt dans l'état CEE, cela suggère que le pod rencontre des problèmes et ne peut pas être considéré comme pleinement opérationnel. Cet état implique généralement que le pod ne peut pas accepter le trafic ou remplir sa fonction prévue.
Analysez les alertes et les informations associées afin de comprendre la cause de l'état « Non prêt ». Les alertes peuvent fournir des détails sur le problème ou le déclencheur spécifique qui a entraîné le changement d'état du noeud. Les contraintes de ressources, les problèmes de connectivité réseau, les pannes matérielles ou les problèmes de configuration sont des raisons courantes pour lesquelles un noeud est à l'état Non prêt.
Étape 1. Vérifiez l'état du pod à l'aide de la commandekubectl get pods
afin de vérifier l'état du pod et rechercher l'état du pod. Si le pod n'est pas prêt, il peut afficher un état tel que 'Pending', 'CrashLoopBackOff' ou 'Error'.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -v Running
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cee-pcf pgpool-65fc8b8d5f-2w9nq 0/1 CrashLoopBackOff 147 (117s ago) 8d xxx.xxx.xxx.xx pcf01-master-2 <none> <none>
All nodes including master-2 are in Ready state
cloud-user@pcf01-master-1:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
Pcf01-master-1 Ready control-plane 667d v1.24.6
Pcf01-master-2 Ready control-plane 9d v1.24.6
Pcf01-master-3 Ready control-plane 9d v1.24.6
Pcf01-worker-1 Ready <none> 9d v1.24.6
Pcf01-worker-10 Ready <none> 9d v1.24.6
Pcf01-worker-11 Ready <none> 9d v1.24.6
Pcf01-worker-12 Ready <none> 9d v1.24.6
Pcf01-worker-13 Ready <none> 9d v1.24.6
Pcf01-worker-14 Ready <none> 9d v1.24.6
Pcf01-worker-15 Ready <none> 9d v1.24.6
Pcf01-worker-16 Ready <none> 9d v1.24.6
Pcf01-worker-17 Ready <none> 9d v1.24.6
Pcf01-worker-18 Ready <none> 9d v1.24.6
Pcf01-worker-19 Ready <none> 9d v1.24.6
Pcf01-worker-2 Ready <none> 9d v1.24.6
Pcf01-worker-20 Ready <none> 9d v1.24.6
Pcf01-worker-21 Ready <none> 9d v1.24.6
Pcf01-worker-22 Ready <none> 9d v1.24.6
Pcf01-worker-23 Ready <none> 9d v1.24.6
Pcf01-worker-3 Ready <none> 9d v1.24.6
Pcf01-worker-4 Ready <none> 9d v1.24.6
Pcf01-worker-5 Ready <none> 9d v1.24.6
pcf01-worker-6 Ready <none> 9d v1.24.6
pcf01-worker-7 Ready <none> 9d v1.24.6
pcf01-worker-8 Ready <none> 9d v1.24.6
pcf01-worker-9 Ready <none> 9d v1.24.6
Étape 2. Connectez-vous au VIP maître et obtenez le pod pgpool.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
cee-pcf01 pgpool-65fc8b8d5f-2w9nq 0/1 Running 3173 (3m58s ago) 22d xxx.xxx.xxx.xx pcf01-master-2 <none> <n
cloud-user@pcf01-master-1:~$
Étape 3. Supprimez le pod pgpool.
cloud-user@pcf01-master-1:~$ kubectl delete pod <pgpool pod name> -n cee-pcf
Étape 4. Vérifiez que le nouveau pod pgpool fonctionne correctement.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
Étape 5. Vérifiez que les alertes liées au pod pgpool ont été effacées sur le centre d'opérations CEE.
[pcf01/pcfapp] cee# show alerts active summary