Introduction
Ce document décrit une solution de contournement pour récupérer un pod Grafana qui redémarre continuellement.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Environnement d'exécution commun (CEE) d'infrastructure de microservices d'abonné (SMI) Cisco Ultra Cloud Core
- Architecture 5G Cloud Native Deployment Platform (CNDP) ou SMI-bare-metal (BM)
- 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 :
- 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 en couches de technologies et de normes cloud qui activent des applications basées sur des microservices à partir des unités commerciales 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 de nuages de couches (technologies et normes) permet des déploiements de haut en bas et s'adapte à l'infrastructure de nuage actuelle.
- Toutes les applications partagent le CEE pour les fonctions non applicatives (stockage de données, déploiement, configuration, télémétrie, alarme), ce qui permet une interaction et une expérience cohérentes pour tous les points de contact et d'intégration du client.
- 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 l'interface 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 résoudre les problèmes.
- Le CEE est l'ensemble commun d'outils installés pour toutes les applications. Il est équipé d'un centre d'opérations dédié, qui fournit l'interface de ligne de commande (CLI) et des API pour gérer les outils de surveillance. Un seul CEE est disponible pour chaque cluster.
Que sont les modules CEE ?
- Un pod est un processus qui s'exécute sur votre cluster Kubernetes. Une gousse encapsule une unité granulaire connue sous le nom de conteneur. Un conteneur contient un ou plusieurs conteneurs.
- Kubernetes déploie un ou plusieurs pods sur un seul noeud, qui peut être une machine physique ou virtuelle. Chaque pod possède une identité distincte avec une adresse IP interne et un espace de ports. Cependant, les conteneurs d'un pod peuvent partager des ressources de stockage et de réseau. CEE dispose d'un certain nombre de pods qui ont des fonctions uniques. Grafana et Postgress sont parmi plusieurs pods 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 est nommé Prometheus.
Qu'est-ce qu'un Postgres Pod ?
Postgres supporte les bases de données SQL avec redondance pour stocker les alertes et les tableaux de bord Grafana.
Problème
Le module Grafana redémarre régulièrement, tandis que les modules Postgres fonctionnent sans problème.
Pour effectuer la restauration, utilisez cette commande pour supprimer manuellement le module Grafana :
kubectl delete pod <grafana_pod_name> -n <cee_namespace
Lors de la suppression, le module 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
CEE d'arrêt
Exécutez ces commandes à partir de CEE afin d'arrêter :
[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 DB pour les modules Postgres
Cochez cette case pour voir les noeuds où les pods Postgres ont frayé.
Dans cet exemple, tous les pods Postgres sont généré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 dans le noeud pour stocker DB :
/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
Remarque : Il peut arriver que les dossiers "/data//postgres<0,1,2>" soient créés sur différents noeuds, tels que master-1, master-2, master-3, etc.
Restaurer CEE
Connectez-vous au Centre des opérations pour restaurer le 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 %.
Vérifications postérieures
Vérification de Kubernetes à partir du maître
Exécutez cette commande pour vérifier l'état du pod Grafana et des 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 modules doivent afficher UP et RUNNING sans aucun redémarrage.
Vérifier que les alertes sont effacées de 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"