Einleitung
In diesem Dokument wird das Verfahren zur Fehlerbehebung für Kubernetes Pod Not Ready in der Policy Control Function (PCF) beschrieben.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
- PCF
- 5G Cloud Native Deployment Platform (CNDP)
- Dockers und Kubernetes
Verwendete Komponenten
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
- PCF REL_2023,01,2
- Kubernetes v1.24.6
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Hintergrundinformationen
In dieser Konfiguration hostet der CNDP PCF.
Wenn sich ein Kubernetes Pod in einem 'Not Ready'-Zustand befindet, bedeutet dies, dass der Pod derzeit nicht in der Lage ist, den Datenverkehr zu bedienen, da sich einer oder mehrere seiner Container nicht im Bereitschaftszustand befinden. Dies kann auf verschiedene Ursachen zurückzuführen sein, z. B. auf Container, die noch in Betrieb sind, fehlgeschlagene Integritätsprüfungen oder Fehler.
Problem
In der Common Execution Environment (CEE) werden Warnungen für Kubernetes-PODs (K8s) angezeigt, nicht im Bereitschaftszustand.
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
Ansatz 1
Überprüfen Sie nach der Anmeldung bei einem Kubernetes-Knoten (K8s) die Warnungen für einen Knoten, der sich derzeit im Status "Not Ready" (Nicht bereit) befindet.
Es ist ratsam, alle Upgrade- oder Wartungsprozesse zu überprüfen. Zu diesem Zeitpunkt kann der POD offline genommen werden, um Updates anzuwenden, neue Software zu installieren oder andere erforderliche Aufgaben oder laufende Wartungsaktivitäten durchzuführen, die sich auf die Verfügbarkeit des POD auswirken können.
Es wird erwartet, dass sich die Spiegelungs-Pods während der Site-Upgrade-Aktivität am Peer-Standort (GR) im genannten Zustand befinden.
Stellen Sie eine Verbindung zum Master-Knoten her, und überprüfen Sie den Status des Spiegelungs-POD.
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.
Ansatz 2
Wenn Sie Warnmeldungen erhalten, die darauf hinweisen, dass sich ein Kubernetes (K8s)-POD nicht in einem einsatzbereiten Zustand innerhalb der CEE befindet, weist dies darauf hin, dass bei dem POD Probleme auftreten und dieser nicht als voll betriebsfähig angesehen werden kann. Dieser Zustand impliziert in der Regel, dass der POD keinen Datenverkehr annehmen oder seine beabsichtigte Funktion erfüllen kann.
Analysieren Sie die Warnungen und die zugehörigen Informationen, um die Ursache für den Status "Not Ready" (Nicht bereit) zu ermitteln. Die Warnungen können Details zu dem spezifischen Problem oder Auslöser enthalten, der zu der Statusänderung des Knotens geführt hat. Häufige Gründe für einen Knoten mit dem Status "Nicht bereit" sind Ressourceneinschränkungen, Netzwerkverbindungsprobleme, Hardwarefehler oder Konfigurationsprobleme.
Schritt 1: Überprüfen Sie den POD-Status mithilfe deskubectl get pods
Befehls, um den Status des POD zu überprüfen, und suchen Sie nach dem POD-Status. Wenn der POD nicht bereit ist, kann er einen Status wie 'Pending', 'CrashLoopBackOff' oder 'Error' anzeigen.
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
Schritt 2: Melden Sie sich beim Master-VIP an, und rufen Sie den pgpool-Pod ab.
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:~$
Schritt 3: Löschen Sie den pgpool-POD.
cloud-user@pcf01-master-1:~$ kubectl delete pod <pgpool pod name> -n cee-pcf
Schritt 4: Stellen Sie sicher, dass der neue pgpool-POD ordnungsgemäß ausgeführt wird.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
Schritt 5: Vergewissern Sie sich, dass die Warnungen für den pgpool-Pod im CEE-Betriebszentrum gelöscht wurden.
[pcf01/pcfapp] cee# show alerts active summary