Einleitung
In diesem Dokument wird eine Problemumgehung zur Wiederherstellung eines Grafana-POD beschrieben, der kontinuierlich neu gestartet wird.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
- Cisco Subscriber Microservices Infrastructure (SMI) Ultra Cloud Core Common Execution Environment (CEE)
- 5G Cloud Native Deployment Platform (CNDP) oder SMI-Bare-Metal (BM)-Architektur
- Dockers und Kubernetes
Verwendete Komponenten
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
- SMI 2020,02,2,35
- Kubernetes v1.21.0
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
Was ist SMI?
Cisco SMI besteht aus mehreren Cloud-Technologien und -Standards, die auf Mikroservices basierende Anwendungen aus den Geschäftsbereichen Cisco Mobility, Cable und Broadband Network Gateway (BNG) ermöglichen. Diese Anwendungen verfügen über ähnliche Funktionen zur Abonnentenverwaltung und ähnliche Datenspeicheranforderungen.
Attribute:
- Der Layer Cloud Stack (Technologien und Standards) ermöglicht Top-to-Bottom-Bereitstellungen und unterstützt die aktuelle Cloud-Infrastruktur.
- Alle Anwendungen nutzen den CEE für Funktionen, die nicht auf Anwendungen basieren (Datenspeicherung, Bereitstellung, Konfiguration, Telemetrie, Alarm) und bieten somit eine konsistente Interaktion und Benutzererfahrung für alle Berührungspunkte und Integrationspunkte mit Kunden.
- Anwendungen und CEE werden in Microservice-Containern bereitgestellt und mit einem Intelligent Service Mesh verbunden.
- Automatisierung wird durch eine offene API für Bereitstellung, Konfiguration und Management ermöglicht.
Was ist SMI CEE?
- Die CEE ist eine Softwarelösung, die entwickelt wurde, um mobile und Kabelanwendungen zu überwachen, die auf dem SMI bereitgestellt werden. Das CEE erfasst Informationen (Schlüsselmetriken) aus den Anwendungen auf zentralisierte Weise, sodass Techniker Fehler debuggen und beheben können.
- Die CEE ist die gemeinsame Reihe von Werkzeugen, die für alle Anwendungen installiert werden. Es verfügt über ein dediziertes Betriebszentrum, das die Befehlszeilenschnittstelle (Command Line Interface, CLI) und APIs zur Verwaltung der Überwachungstools bereitstellt. Pro Cluster ist nur ein CEE verfügbar.
Was sind CEE PODs?
- Ein POD ist ein Prozess, der auf Ihrem Kubernetes-Cluster ausgeführt wird. Ein Pod kapselt eine körnige Einheit, die als Behälter bekannt ist. Ein Pod enthält einen oder mehrere Container.
- Kubernetes stellt einen oder mehrere PODs auf einem einzelnen Knoten bereit, bei dem es sich um ein physisches oder virtuelles System handeln kann. Jeder POD hat eine eigene Identität mit einer internen IP-Adresse und einem Port-Space. Die Container in einem POD können jedoch Storage- und Netzwerkressourcen gemeinsam nutzen. CEE hat eine Reihe von Pods, die einzigartige Funktionen haben. Grafana und Postgress gehören zu mehreren CEE-Pods.
Was ist ein Grafana Pod?
Ein Grafana-Pod kann mit einem Prometheus-Pod kommunizieren, der über den Prometheus-Dienst namens Prometheus erreichbar ist.
Was ist ein Postgres Pod?
Postgres unterstützt SQL-Datenbanken mit Redundanz zum Speichern von Warnungen und Grafana-Dashboards.
Problem
Der Grafana-Pod startet regelmäßig neu, während die Postgres-Pod problemlos laufen.
Um den Grafana Pod wiederherzustellen, löschen Sie den Grafana Pod mit diesem Befehl manuell:
kubectl delete pod <grafana_pod_name> -n <cee_namespace
Nach dem Löschen wird die Grafana-Hülle neu erstellt und neu gestartet.
Wenn das Problem weiterhin besteht, verwenden Sie diesen CLI-Befehl, um die Beispielwarnung von CEE abzurufen und das Problem zu identifizieren:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
Beispiel:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
Time Alert Name Description Port Access ID NEState Severity Alert Source
16:26 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_883 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:23 PCF_k8s-pod-crashing-loop " "Processing Error Alarm"} " "Pod cee-dnrce301/grafana-59768df649-n6x6x (grafana) is restarting 1.03 times / 5 minutes." InService Critical NETX
16:20 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_882 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:14 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_881 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:08 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_880 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:02 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_879 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
15:56 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_878 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
15:53 PCF_k8s-pod-crashing-loop " "Processing Error Alarm"} " "Pod cee-dnrce301/grafana-59768df649-n6x6x (grafana) is restarting 1.03 times / 5 minutes." InService Critical NETX
Problemumgehung
CEE herunterfahren
Führen Sie die folgenden Befehle von CEE aus, um das System herunterzufahren:
[pod-name-smf/podname] cee# conf
Entering configuration mode terminal
[pod-name-smf/podname] cee(config)# system mode shutdown
[pod-name-smf/podname] cee(config)# commit
Commit complete.
[pod-name-smf/podname] cee(config)# end
Warten Sie, bis das System 100 % erreicht hat.
DB-Ordner für Postgres-Pods entfernen
Markieren Sie diese Option, um die Knoten zu sehen, an denen die Postgres-Pods erzeugt wurden.
In diesem Beispiel werden alle Postgres-Pods auf "master-1" erzeugt:
cloud-user@dnup0300-aio-1-master-1:~$ kubectl get pods -n cee-dnrce301 -o wide | grep postgres
postgres-0 1/1 Running 0 35d 10.108.50.28 dnup0300-aio-1-master-1 <none> <none>
postgres-1 1/1 Running 0 35d 10.108.50.47 dnup0300-aio-1-master-1 <none> <none>
postgres-2 1/1 Running 0 35d 10.108.50.102 dnup0300-aio-1-master-1 <none> <none>
Es werden Ordner für jedes Postgres in diesem Pfad im Knoten erstellt, um DB zu speichern:
/data/<cee-namespace>/postgres<0,1,2>
Entfernen Sie diese Ordner wie dargestellt:
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-0
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-1
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-2
Anmerkung: Es kann Fälle geben, in denen die Ordner auf verschiedenen Knoten erstellt "/data//postgres<0,1,2>" werden, z. B. master-1, master-2, master-3 usw.
CEE wiederherstellen
Melden Sie sich beim Operations Center an, um die CEE wiederherzustellen und die folgenden CLI-Befehle auszuführen:
[pod-name-smf/podname] cee# conf
Entering configuration mode terminal
[pod-name-smf/podname] cee(config)# system mode running
[pod-name-smf/podname] cee(config)# commit
Commit complete.
[pod-name-smf/podname] cee(config)# end
[pod-name-smf/podname] cee# exit
Warten Sie, bis das System 100 % erreicht hat.
Nachprüfungen
Überprüfen Sie Kubernetes vom Master
Führen Sie diesen Befehl aus, um den Status des Grafana-Pods und anderer Pods zu überprüfen:
cloud-user@pod-name-smf-master-1:~$ kubectl get pods -A -o wide | grep grafana
cloud-user@pod-name-smf-master-1:~$ kubectl get pods -A -o wide
Alle PODs sollten UP und RUNNING ohne Neustart anzeigen.
Überprüfen, ob Warnungen von CEE gelöscht wurden
Führen Sie diesen Befehl aus, um zu bestätigen, dass die Warnungen aus CEE gelöscht wurden:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"