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