소개
이 문서에서는 연속적으로 재시작되는 Grafana Pod를 복구하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco SMI(Subscriber Microservices Infrastructure) Ultra Cloud CEE(Core Common Execution Environment)
- 5G CNDP(Cloud Native Deployment Platform) 또는 SMI-BM(Bare-Metal) 아키텍처
- 부두 및 쿠베르네테
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- SMI 2020.02.2.35
- 쿠베르네테스 v1.21.0
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
SMI란 무엇입니까?
Cisco SMI는 Cisco Mobility, Cable 및 BNG(Broadband Network Gateway) 비즈니스 유닛에서 마이크로서비스 기반 애플리케이션을 활성화하는 클라우드 기술 및 표준의 레이어 스택입니다. 이러한 애플리케이션에는 유사한 가입자 관리 기능 및 유사한 데이터 저장소 요구 사항이 있습니다.
특성:
- 레이어 클라우드 스택(기술 및 표준)은 하향식 구축을 제공하고 현재 클라우드 인프라를 수용합니다.
- 모든 애플리케이션은 비 애플리케이션 기능(데이터 스토리지, 구축, 컨피그레이션, 텔레메트리, 알람)에 대해 CEE를 공유하며, 이는 모든 고객 접점과 통합 지점에 대해 일관된 상호 작용과 경험을 제공합니다.
- 애플리케이션과 CEE는 마이크로서비스 컨테이너에 구축되며 Intelligent Service Mesh로 연결됩니다.
- 배포, 구성 및 관리를 위한 노출된 API는 자동화를 가능하게 합니다.
SMI CEE란 무엇입니까?
- CEE는 SMI에 구축된 모바일 및 케이블 애플리케이션을 모니터링하기 위해 개발된 소프트웨어 솔루션입니다. CEE는 엔지니어가 디버깅하고 문제를 해결할 수 있도록 애플리케이션의 정보(주요 메트릭)를 중앙 집중식으로 캡처합니다.
- CEE는 모든 애플리케이션에 설치되는 공통 툴 집합입니다. 전용 Ops Center가 장착되어 있어 모니터 툴을 관리하기 위한 CLI(Command Line Interface) 및 API를 제공합니다. 각 클러스터에는 하나의 CEE만 사용할 수 있습니다.
CEE Pods란 무엇입니까?
- Pod는 Kubernetes 클러스터에서 실행되는 프로세스입니다. Pod는 컨테이너라고 하는 세분화된 유닛을 캡슐화합니다. Pod에는 하나 이상의 컨테이너가 포함되어 있습니다.
- Kubernetes는 물리적 또는 가상 머신일 수 있는 단일 노드에 하나 이상의 포드를 구축합니다. 각 Pod에는 내부 IP 주소 및 포트 공간이 있는 별도의 ID가 있습니다. 그러나 Pod 내의 컨테이너는 스토리지 및 네트워크 리소스를 공유할 수 있습니다. CEE는 독특한 기능을 가진 많은 포드를 가지고 있습니다. Grafana와 Postgress는 여러 CEE 포드 중 하나입니다.
Grafana Pod란 무엇입니까?
Grafana Pod는 Prometheus Service를 통해 Prometheus Pod와 통신할 수 있으며, Prometheus Service는 Prometheus라는 이름을 사용합니다.
Postgres Pod란 무엇입니까?
Postgres는 이중화를 통해 알림 및 Grafana 대시보드를 저장하는 SQL 데이터베이스를 지원합니다.
문제
Postgres 포드는 문제 없이 실행되지만 Grafana 포드는 정기적으로 다시 시작됩니다.
복구하려면 이 명령을 사용하여 Grafana Pod를 수동으로 삭제합니다.
kubectl delete pod -n
삭제 시 Grafana Pod가 다시 생성되고 다시 시작됩니다.
문제가 지속되면 이 CLI 명령을 사용하여 CEE에서 샘플 경고를 가져와 문제를 식별합니다.
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"
예:
[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
해결 방법
CEE 종료
종료하려면 CEE에서 다음 명령을 실행합니다.
[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
시스템이 100%에 도달할 때까지 기다립니다.
Postgres 포드에 대한 DB 폴더 제거
Postgres 포드가 생성된 노드를 확인합니다.
이 예에서는 모든 Postgres 포드가 "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>
노드의 이 경로에 있는 각 Postgres에 대해 DB를 저장할 폴더가 생성됩니다.
/data/<cee-namespace>/postgres<0,1,2>
다음과 같이 해당 폴더를 제거합니다.
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
참고: 마스터-1, 마스터-2, 마스터-3 등 여러 노드에 폴더가 생성되는 경우가 있을 수 "/data//postgres<0,1,2>" 있습니다.
CEE 복원
Ops Center에 로그인하여 CEE를 복원하고 다음 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
시스템이 100%에 도달할 때까지 기다립니다.
수표 게시
마스터에서 Kubernetes 확인
다음 명령을 실행하여 Grafana 포드 및 기타 포드의 상태를 확인합니다.
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
모든 Pod는 재시작 없이 UP 및 RUNNING으로 표시됩니다.
CEE에서 경고가 지워졌는지 확인
다음 명령을 실행하여 CEE에서 경고가 지워졌는지 확인합니다.
[pod-name-smf/podname] cee# show alerts active summary | include "POD_Res|k8s_grafana"