Introduction
Ce document décrit les étapes de récupération lorsque le pod Cisco Smart Install (SMI) passe à l'état Non prêt en raison du bogue https://github.com/kubernetes/kubernetes/issues/82346 de Kubernetes.
Problème
Après l'isolation du site, Converged Ethernet (CEE) a signalé l'alarme d'erreur de traitement dans le CEE. L'état du système prêt est inférieur à 100 %.
[site1app/pod1] cee# show alerts active
alerts active k8s-deployment-replica-mismatch f89d8d09389c
state active
severity critical
type "Processing Error Alarm"
startsAt 2021-05-27T08:38:58.703Z
source site1app-smi-cluster-policy-oam2
labels [ "component: kube-state-metrics" "deployment: prometheus-scrapeconfigs-synch" "exported_namespace: cee-pod1" "instance: 192.0.2.37:8080" "job: kubernetes-pods" "namespace: cee-pod1" "pod: kube-state-metrics-6c476f7494-tqkrc" "pod_template_hash: 6c476f7494" "release: cee-pod1-cnat-monitoring" ]
annotations [ "summary: Deployment cee-pod1/prometheus-scrapeconfigs-synch has not matched the expected number of replicas for longer than 2 minutes." ]
[site1app/pod1] cee# show system status
system status deployed true
system status percent-ready 92.68
ubuntu@site1app-smi-cluster-policy-mas01:~$ kubectl get rs -n cee-pod1 | grep scrape
NAME DESIRED CURRENT READY AGE
prometheus-scrapeconfigs-synch-ccd454f76 1 1 0 395d
prometheus-scrapeconfigs-synch-f5544b4f8 0 0 0 408d
Solution
L'isolation du site est un déclencheur du bogue https://github.com/kubernetes/kubernetes/issues/82346. La solution de contournement pour que ces pods soient à l'état Prêt consiste à redémarrer les pods affectés. La correction est incluse dans les prochaines versions de CEE.
Vérification initiale du module et du système
Connectez-vous à l'interface de ligne de commande CEE et vérifiez l'état du système.
ssh -p 2024 admin@`kubectl get svc -A| grep " ops-center-cee" | awk '{print $4}'`
show alerts active
show system status
Redémarrage des pods affectés
Connectez-vous au noeud principal, sur le noeud principal, exécutez ces commandes. Et identifiez les jeux de démons et de réplicas qui n'ont pas tous les membres à l'état Prêt.
kubectl get daemonsets -A
kubectl get rs -A | grep -v '0 0 0'
Copiez et collez ces commandes dans le bloc-notes et remplacez tous les cee-xyz par l'espace de noms cee sur le site.
kubectl describe pods core-retriever -n cee-xyz | egrep "^Name:|False" | grep -B1 False
kubectl describe pods calico-node -n kube-system | egrep "^Name:|False" | grep -B1 False
kubectl describe pods csi-cinder-nodeplugin -n kube-system | egrep "^Name:|False" | grep -B1 False
kubectl describe pods maintainer -n kube-system | egrep "^Name:|False" | grep -B1 False
kubectl describe pods kube-proxy -n kube-system | egrep "^Name:|False" | grep -B1 False
kubectl describe pods path-provisioner -n cee-xyz | egrep "^Name:|False" | grep -B1 False
kubectl describe pods logs-retriever -n cee-xyz | egrep "^Name:|False" | grep -B1 False
kubectl describe pods node-exporter -n cee-xyz | egrep "^Name:|False" | grep -B1 False
kubectl describe pods keepalived -n smi-vips| egrep "^Name:|False" | grep -B1 False
kubectl describe pods prometheus-scrapeconfigs-synch -n cee-xyz | egrep "^Name:|False" | grep -B1 False
Exécutez les commandes et collectez le résultat. Dans le résultat, la sortie identifie les noms pod avec l'espace de noms correspondant qui nécessitent un redémarrage.
Redémarrez tous les pods affectés de la liste obtenue précédemment lorsque vous émettez ces commandes (remplacez le nom pod et l'espace de noms en conséquence).
kubectl delete pods core-retriever-abcde -n cee-xyz
kubectl delete pods core-retriever-abcde -n cee-xyz
…
Vérifiez que les pods fonctionnent sans problème.
kubeclt get pods -A
Vérifier les pods et l'état du système après le redémarrage
Exécuter les commandes :
kubectl get daemonsets -A
kubectl get rs -A | grep -v '0 0 0'
Vérifiez que les jeux de démons et de réplicas affichent tous les membres à l'état Prêt.
Connectez-vous à l'interface de ligne de commande CEE et confirmez qu'aucune alerte active et l'état du système ne doivent être égaux à 100 %.
ssh -p 2024 admin@`kubectl get svc -A| grep " ops-center-cee" | awk '{print $4}'`
show alerts active
show system status