Introduction
Este documento descreve uma solução alternativa para recuperar um pod Grafana que é reiniciado continuamente.
Prerequisites
Requirements
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 de nuvem (CNDP) de 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.02.2.35
- Kubernetes v1.21.0
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. 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:
- A pilha de nuvem de camada (tecnologias e padrões) fornece implantações de cima para baixo e acomoda a infraestrutura de nuvem atual.
- Todos os aplicativos compartilham a CEE para funções que não são de aplicação (armazenamento de dados, implantação, configuração, telemetria, alarme), o que proporciona interação e experiência consistentes para todos os pontos de contato e de integração do cliente.
- Os aplicativos e a 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?
- A CEE é uma solução de software que foi desenvolvida para monitorar aplicativos móveis e de cabos que são implantados na SMI. A CEE captura informações (métricas importantes) dos aplicativos de forma centralizada para que os engenheiros possam depurar e solucionar problemas.
- A CEE é o conjunto comum de ferramentas instaladas para todos os aplicativos. Ele vem equipado com um centro de operações dedicado, que fornece a CLI (Command Line Interface, interface de linha de comando) e APIs para gerenciar as ferramentas do monitor. Apenas um CEE está disponível para cada cluster.
O que são os Pods da CEE?
- Um pod é um processo executado no cluster de Kubernetes. Um pod encapsula uma unidade granular conhecida como contêiner. Um pod contém um ou vários contêineres.
- 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 um espaço de porta. No entanto, os contêineres dentro de um pod podem compartilhar recursos de armazenamento e rede. CEE tem vários pods que têm funções únicas. Grafana e Postgress estão entre vários pods CEE.
O que é um pod Grafana?
Um pod Grafana pode se comunicar com um pod Prometheus com acesso por meio do Serviço Prometheus, que é chamado Prometheus.
O que é um Pod Postgres?
Os Postgres suportam bancos de dados SQL com redundância para armazenar alertas e painéis Grafana.
Problema
O pod Grafana é reiniciado regularmente, enquanto os pods Postgres são executados sem problemas.
Para recuperar-se, use este comando para excluir o pod Grafana manualmente:
kubectl delete pod
-n
Após exclusão, o pod Grafana é recriado e reiniciado.
Se o problema persistir, use este comando CLI para obter o alerta de exemplo de 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 do 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 DB para pods do Postgres
Verifique para ver os nós onde os pods do Postgres foram gerados.
Neste exemplo, todos os pods do 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 Postgre 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>"
são criados em nós diferentes, como master-1, master-2, master-3 e assim por diante.
Restaurar CEE
Efetue login no Ops Center para restaurar o CEE e executar 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%.
Controlos postais
Verificar Kubernetes do mestre
Execute este comando para verificar o status do pod 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 EXECUÇÃO sem qualquer reinicialização.
Verificar se os alertas estão limpos do CEE
Execute este comando para confirmar se os alertas foram apagados da CEE:
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"