Introduction
Este documento descreve as etapas de recuperação quando o pod do Cisco Smart Install (SMI) entra no estado não pronto devido ao bug Kubernetes https://github.com/kubernetes/kubernetes/issues/82346.
Problema
Após o isolamento do local, a Ethernet convergida (CEE) relatou o alarme de erro de processamento na CEE. O status de pronto do sistema está abaixo de 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
Solução
O isolamento do site é um gatilho para o bug https://github.com/kubernetes/kubernetes/issues/82346. A solução para ter esses pods no estado Pronto é reiniciar os pods afetados. A correção está incluída nas próximas versões CEE.
Verificação inicial do sistema e do pod
Faça login na CLI CEE e verifique o status do sistema.
ssh -p 2024 admin@`kubectl get svc -A| grep " ops-center-cee" | awk '{print $4}'`
show alerts active
show system status
Reinicialização de pods afetados
Faça login no nó primário, no primário, execute esses comandos. E identifique conjuntos de daemonsets e réplicas que não têm todos os membros no estado Pronto.
kubectl get daemonsets -A
kubectl get rs -A | grep -v '0 0 0'
Copie e cole esses comandos no bloco de notas e substitua todos os cee-xyz pelo espaço de nomes cee no 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
Execute os comandos e reúna a saída do resultado. No resultado, a saída identifica os nomes do pod com o namespace correspondente que exige uma reinicialização.
Reinicie todos os pods afetados da lista obtida anteriormente quando você emitir esses comandos (substitua o nome do pod e o namespace adequadamente).
kubectl delete pods core-retriever-abcde -n cee-xyz
kubectl delete pods core-retriever-abcde -n cee-xyz
…
Verifique se os pods estão funcionando e funcionando sem nenhum problema.
kubeclt get pods -A
Verifique o status do sistema e dos pods após a reinicialização
Executar comandos:
kubectl get daemonsets -A
kubectl get rs -A | grep -v '0 0 0'
Confirme se os conjuntos de daemonsets e réplicas mostram todos os membros no estado Pronto.
Faça login na CLI CEE e confirme se nenhum alerta ativo e status do sistema devem ser 100%.
ssh -p 2024 admin@`kubectl get svc -A| grep " ops-center-cee" | awk '{print $4}'`
show alerts active
show system status