Sommario

Introduzione

Problema

Soluzione

Verifica iniziale di sistemi e unità

Riavvio dei pod interessati

Verifica delle unità disco ottiche e dello stato del sistema dopo il riavvio

Introduzione

In questo documento vengono descritti i passaggi di ripristino da eseguire quando il pod Cisco Smart Install (SMI) diventa non pronto a causa di un bug di Kubernetes https://github.com/kubernetes/kubernetes/issues/82346.

Problema

Dopo l'isolamento del sito, Converged Ethernet (CEE) ha segnalato l'allarme di errore di elaborazione nella CEE. Lo stato di sistema pronto è inferiore al 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

Soluzione

L'isolamento del sito è un'attivazione del bug https://github.com/kubernetes/kubernetes/issues/82346. Per risolvere il problema, portare questi pod nello stato Pronto è necessario riavviare i pod interessati. La correzione è inclusa nelle prossime versioni CEE.

Verifica iniziale di sistemi e unità

Accedere alla CLI CEE e verificare lo stato del sistema.

ssh -p 2024 admin@`kubectl get svc -A| grep " ops-center-cee" | awk '{print $4}'`

show alerts active

show system status

Riavvio dei pod interessati

Accedere al nodo primario ed eseguire questi comandi sul nodo primario. Identificare i daemonset e i set di repliche che non hanno tutti i membri nello stato Ready.

kubectl get daemonsets -A

kubectl get rs -A | grep -v '0 0 0'

Copiare e incollare questi comandi nel blocco note e sostituire tutti i cee-xyz con lo spazio dei nomi cee nel sito.

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

Eseguire i comandi e raccogliere l'output del risultato. Nel risultato, l'output identifica i nomi dei pod con lo spazio dei nomi corrispondente che richiedono un riavvio.

Riavviare tutti i pod interessati dall'elenco ottenuto in precedenza quando si eseguono questi comandi (sostituire il nome del pod e lo spazio dei nomi di conseguenza).

kubectl delete pods core-retriever-abcde -n cee-xyz

kubectl delete pods core-retriever-abcde -n cee-xyz

…

Verificare che i pod siano attivi e funzionanti senza problemi.

kubeclt get pods -A

Verifica delle unità disco ottiche e dello stato del sistema dopo il riavvio

Esegui comandi:

kubectl get daemonsets -A

kubectl get rs -A | grep -v '0 0 0'

Confermare che i daemonset e i set di repliche visualizzino tutti i membri nello stato Pronto.

Accedere alla CLI CEE e verificare che nessun avviso attivo e stato del sistema sia impostato su 100%.

ssh -p 2024 admin@`kubectl get svc -A| grep " ops-center-cee" | awk '{print $4}'`

show alerts active

show system status