Contenido

Introducción

Problema

Solución

Verificación inicial del Pod y del sistema

Reinicio de grupos afectados

Verificar Pods y Estado del Sistema después de Reiniciar

Introducción

Este documento describe los pasos de recuperación cuando el grupo de dispositivos Cisco Smart Install (SMI) entra en el estado no preparado debido al error de funcionamiento de Kubernetes https://github.com/kubernetes/kubernetes/issues/82346.

Problema

Después del aislamiento del sitio, Converged Ethernet (CEE) informó de la alarma de error de procesamiento en CEE. El estado preparado para el sistema es inferior 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

Solución

El aislamiento del sitio es un disparador para el bug https://github.com/kubernetes/kubernetes/issues/82346. La solución alternativa para tener estos grupos de dispositivos en estado Preparado es reiniciar los grupos de dispositivos afectados. La corrección se incluye en las próximas versiones de CEE.

Verificación inicial del Pod y del sistema

Inicie sesión en CEE CLI y verifique el estado del sistema.

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

show alerts active

show system status

Reinicio de grupos afectados

Inicie sesión en el nodo primario, en el primario, ejecute estos comandos. E identifique conjuntos de demonios y conjuntos de réplicas que no tienen todos los miembros en el estado Preparado.

kubectl get daemonsets -A

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

Copie y pegue estos comandos en el bloc de notas y reemplace todos cee-xyz por el espacio de nombres cee en el sitio.

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

Ejecute los comandos y recopile el resultado. En el resultado, el resultado identifica los nombres de grupos de dispositivos con el espacio de nombres correspondiente que requiere un reinicio.

Reinicie todos los grupos de dispositivos afectados de la lista obtenida anteriormente cuando ejecute estos comandos (reemplace el nombre de grupo y el espacio de nombres según corresponda).

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

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

…

Verifique que los grupos de dispositivos estén activos y funcionando sin ningún problema.

kubeclt get pods -A

Verificar Pods y Estado del Sistema después de Reiniciar

Ejecutar comandos:

kubectl get daemonsets -A

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

Confirme que los conjuntos de demonios y réplicas muestren todos los miembros en el estado Preparado.

Inicie sesión en CEE CLI y confirme que ninguna alerta activa y el estado del sistema debe ser del 100%.

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

show alerts active

show system status