Introdução
Este documento descreve uma solução para recuperar um pod do Grafana que reinicia continuamente.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Cisco Subscriber Microservices Infrastructure (SMI) Ultra Cloud Core Common Execution Environment (CEE)
- Plataforma de implantação nativa em nuvem (CNDP) 5G ou arquitetura SMI-bare-metal (BM)
- Dockers e Kubernetes
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- SMI 2020.2.2.35
- Kubernetes v1.21.0
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
O que é SMI?
O Cisco SMI é uma pilha em camadas de tecnologias e padrões de nuvem que permitem aplicativos baseados em microsserviços das unidades de negócios Cisco Mobility, Cable e Broadband Network Gateway (BNG). Esses aplicativos têm funções semelhantes de gerenciamento de assinantes e requisitos semelhantes de armazenamento de dados.
Atributos:
- O Layer Cloud Stack (tecnologias e padrões) fornece implantações de cima para baixo e acomoda a infraestrutura de nuvem atual.
- Todos os aplicativos compartilham o CEE para funções que não são de aplicativo (armazenamento de dados, implantação, configuração, telemetria, alarme), o que fornece uma interação e experiência consistentes para todos os pontos de contato e pontos de integração do cliente.
- Os aplicativos e o CEE são implantados em contêineres de microsserviço e conectados com uma malha de serviço inteligente.
- Uma API exposta para implantação, configuração e gerenciamento permite a automação.
O que é SMI CEE?
- O CEE é uma solução de software que foi desenvolvida para monitorar aplicativos móveis e a cabo que são implantados na SMI. O CEE captura informações (métricas principais) dos aplicativos de forma centralizada para que os engenheiros possam depurar e solucionar problemas.
- O CEE é o conjunto comum de ferramentas instaladas para todos os aplicativos. Ele vem equipado com um centro de operações dedicado, que fornece a interface de linha de comando (CLI) e APIs para gerenciar as ferramentas de monitoramento. Apenas um CEE está disponível para cada cluster.
O que são os CEE Pods?
- Um pod é um processo que roda no seu cluster Kubernetes. Um pod encapsula uma unidade granular conhecida como contêiner. Um pod contém um ou vários contêineres.
- O Kubernetes implanta um ou vários pods em um único nó, que pode ser uma máquina física ou virtual. Cada pod tem uma identidade discreta com um endereço IP interno e espaço de porta. No entanto, os contêineres dentro de um pod podem compartilhar recursos de armazenamento e rede. CEE tem uma série de pods que têm funções únicas. Grafana e Postgress estão entre vários pods CEE.
O que é um Grafana Pod?
Um pod de Grafana pode se comunicar com um pod de Prometheus com acesso através do Serviço Prometheus, que é chamado de Prometheus.
O que é um Pod Postgres?
O Postgres suporta bancos de dados SQL com redundância para armazenar alertas e painéis Grafana.
Problema
O pod do Grafana reinicia regularmente, enquanto os pods do Postgres são executados sem problemas.
Para recuperar, use este comando para excluir o pod do Grafana manualmente:
kubectl delete pod <grafana_pod_name> -n <cee_namespace
Após a exclusão, o pod do Grafana é recriado e reiniciado.
Se o problema persistir, use este comando CLI para obter o alerta de exemplo do CEE para identificar o problema:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
Exemplo:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
Time Alert Name Description Port Access ID NEState Severity Alert Source
16:26 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_883 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:23 PCF_k8s-pod-crashing-loop " "Processing Error Alarm"} " "Pod cee-dnrce301/grafana-59768df649-n6x6x (grafana) is restarting 1.03 times / 5 minutes." InService Critical NETX
16:20 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_882 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:14 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_881 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:08 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_880 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
16:02 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_879 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
15:56 PCF_POD_Restarted " "Processing Error Alarm"} " ""Container k8s_grafana_grafana-59768df649-n6x6x_cee-dnrce301_a4ff5711-0e20-4dd4-ae7f-47296c334930_878 of pod grafana-59768df649-n6x6x in namespace cee-dnrce301 has been restarted."" InService Major NETX
15:53 PCF_k8s-pod-crashing-loop " "Processing Error Alarm"} " "Pod cee-dnrce301/grafana-59768df649-n6x6x (grafana) is restarting 1.03 times / 5 minutes." InService Critical NETX
Solução
Desligar CEE
Execute estes comandos de CEE para desligar:
[pod-name-smf/podname] cee# conf
Entering configuration mode terminal
[pod-name-smf/podname] cee(config)# system mode shutdown
[pod-name-smf/podname] cee(config)# commit
Commit complete.
[pod-name-smf/podname] cee(config)# end
Aguarde até que o sistema atinja 100%.
Remova as pastas de BD para Postgres Pods
Marque para ver os nós onde os pods do Postgres apareceram.
Neste exemplo, todos os pods Postgres são gerados em "master-1":
cloud-user@dnup0300-aio-1-master-1:~$ kubectl get pods -n cee-dnrce301 -o wide | grep postgres
postgres-0 1/1 Running 0 35d 10.108.50.28 dnup0300-aio-1-master-1 <none> <none>
postgres-1 1/1 Running 0 35d 10.108.50.47 dnup0300-aio-1-master-1 <none> <none>
postgres-2 1/1 Running 0 35d 10.108.50.102 dnup0300-aio-1-master-1 <none> <none>
Haverá pastas criadas para cada Postgres neste caminho no nó para armazenar o DB:
/data/<cee-namespace>/postgres<0,1,2>
Remova essas pastas conforme mostrado:
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-0
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-1
cloud-user@dnup0300-aio-1-master-1:/data/cee-dnrce301$ sudo rm -rf data-postgres-2
Note: Pode haver casos em que as pastas "/data//postgres<0,1,2>" sejam criadas em nós diferentes, como master-1, master-2, master-3 etc.
Restaurar CEE
Faça login no Ops Center para restaurar o CEE e execute estes comandos CLI:
[pod-name-smf/podname] cee# conf
Entering configuration mode terminal
[pod-name-smf/podname] cee(config)# system mode running
[pod-name-smf/podname] cee(config)# commit
Commit complete.
[pod-name-smf/podname] cee(config)# end
[pod-name-smf/podname] cee# exit
Aguarde até que o sistema atinja 100%.
Lançar cheques
Verifique o Kubernetes do mestre
Execute este comando para verificar o status do pod do Grafana e de outros pods:
cloud-user@pod-name-smf-master-1:~$ kubectl get pods -A -o wide | grep grafana
cloud-user@pod-name-smf-master-1:~$ kubectl get pods -A -o wide
Todos os pods devem exibir UP e RUNNING sem nenhuma reinicialização.
Verifique se os alertas foram eliminados do CEE
Execute este comando para confirmar se os alertas foram eliminados do CEE:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"