Introduction
Ce document décrit une solution de contournement pour récupérer un pod Grafana qui redémarre continuellement.
Conditions préalables
Conditions requises
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Environnement d'exécution commun (CEE) Ultra Cloud Core de Cisco Subscriber Microservices Infrastructure (SMI)
- Architecture CNDP (Cloud Native Deployment Platform) 5G ou BM (SMI-bare-metal)
- Dockers et Kubernetes
Components Used
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- SMI 2020.02.2.35
- Kubernetes v1.21.0
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
Qu'est-ce que SMI ?
Cisco SMI est une pile multicouche de technologies et de normes cloud qui permet d'utiliser des applications de microservices à partir des unités commerciales de Cisco Mobility, Cable, and Broadband Network Gateway (BNG). Ces applications ont des fonctions de gestion des abonnés similaires et des exigences similaires en matière de data store.
Attributs :
- La pile cloud de couche (technologies et normes) fournit des déploiements de haut en bas et s'adapte à l'infrastructure cloud actuelle.
- Toutes les applications partagent le CEE pour des fonctions non applicatives (stockage de données, déploiement, configuration, télémétrie, alarme), ce qui fournit une interaction et une expérience cohérentes pour tous les points de contact et d'intégration des clients.
- Les applications et le CEE sont déployés dans des conteneurs de microservices et sont connectés à un maillage de service intelligent.
- Une API exposée pour le déploiement, la configuration et la gestion permet l'automatisation.
Qu'est-ce que SMI CEE ?
- CEE est une solution logicielle développée pour surveiller les applications mobiles et câblées déployées sur le SMI. Le CEE capture les informations (mesures clés) des applications de manière centralisée pour permettre aux ingénieurs de déboguer et de dépanner.
- Le CEE est l'ensemble commun d'outils installés pour toutes les applications. Il est équipé d'un Ops Center dédié, qui fournit l'interface de ligne de commande (CLI) et les API pour gérer les outils de surveillance. Un seul CEE est disponible pour chaque grappe.
Qu'est-ce que les modules CEE ?
- Un pod est un processus qui s'exécute sur votre cluster Kubernetes. Un pod encapsule une unité granulaire appelée conteneur. Un pod contient un ou plusieurs conteneurs.
- Kubernetes déploie un ou plusieurs pods sur un noeud unique, qui peut être une machine physique ou virtuelle. Chaque pod possède une identité distincte avec une adresse IP interne et un espace de port. Cependant, les conteneurs d'un pod peuvent partager des ressources de stockage et de réseau. CEE a un certain nombre de pods qui ont des fonctions uniques. Le Grafana et le PostProgress font partie de plusieurs gousses CEE.
Qu'est-ce qu'un Grafana Pod ?
Un pod Grafana peut communiquer avec un pod Prometheus avec accès via le service Prometheus, qui s'appelle Prometheus.
Qu'est-ce qu'un PostGres Pod ?
Postgres prend en charge les bases de données SQL avec redondance pour stocker les alertes et les tableaux de bord Grafana.
Problème
Le pod Grafana redémarre régulièrement, tandis que les pods Postgres fonctionnent sans problème.
Pour récupérer, utilisez cette commande pour supprimer manuellement le pod Grafana :
kubectl delete pod
-n
Après suppression, le pod Grafana est recréé et redémarré.
Si le problème persiste, utilisez cette commande CLI pour obtenir l'exemple d'alerte de CEE afin d'identifier le problème :
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
Exemple :
[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
Solution de contournement
Arrêt CEE
Exécutez ces commandes à partir de CEE afin de désactiver :
[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
Attendez que le système atteigne 100 %.
Supprimer les dossiers de base de données des pods Postgres
Cochez cette case pour voir les noeuds où les pods Postgres ont frayé.
Dans cet exemple, tous les pods Postgres sont frayés sur « master-1 » :
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>
Il y aura des dossiers créés pour chaque Postgres dans ce chemin d'accès dans le noeud pour stocker la base de données :
/data/<cee-namespace>/postgres<0,1,2>
Supprimez ces dossiers comme indiqué :
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
Note: Il peut y avoir des cas où les dossiers "/data/
/postgres<0,1,2>"
sont créés sur différents noeuds, tels que master-1, master-2, master-3, etc.
Restaurer CEE
Connectez-vous au centre d'opérations pour restaurer CEE et exécuter les commandes CLI suivantes :
[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
Attendez que le système atteigne 100 %.
Valider les chèques
Vérifier les paramètres Kubernetes à partir du maître
Exécutez cette commande pour vérifier l'état du pod Grafana et d'autres pods :
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
Tous les pods doivent afficher UP et RUNNING sans redémarrage.
Vérifier que les alertes sont effacées du CEE
Exécutez cette commande pour confirmer que les alertes sont effacées de CEE :
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"