소개
이 문서에서는 PCF(정책 제어 기능)에 표시된 Kubernetes Pod Not Ready 트러블슈팅 절차에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- PCF
- 5G CNDP(Cloud Native Deployment Platform)
- 부두 및 쿠베르네테
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- PCF REL_2023.01.2
- 쿠베르네테스 v1.24.6
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
이 설정에서는 CNDP가 PCF를 호스팅합니다.
Kubernetes Pod가 '준비 안 됨' 상태이면 해당 컨테이너 중 하나 이상이 준비 상태가 아니므로 Pod에서 현재 트래픽을 처리할 수 없음을 의미합니다. 이는 컨테이너가 여전히 시작 중이거나, 상태 검사에 실패하거나, 오류가 발생하는 등 다양한 이유 때문일 수 있습니다.
문제
Kubernetes(K8s) 포드의 CEE(Common Execution Environment)에서 준비 안 됨 상태에 대한 경고가 표시됩니다.
Command:
cee# show alerts active summary summary
Example:
[pcf01/pcfapp] cee# show alerts active summary
NAME UID SEVERITY STARTS AT DURATION SOURCE SUMMARY
----------------------------------------------------------------------------------------------------------
k8s-pod-not-ready 35b143f885ec critical 06-13T08:22:05 mirror-maker-0 Pod pcf-pcf/mirror-maker-0 has been in a non-ready state for longer than 1 minute
k8s-pod-crashing-loop 990b651ad5f5 critical 04-19T22:51:08 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-pod-restarting a44d31701faf minor 04-19T01:55:38 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-deployment-replic b8f04c540905 critical 04-06T01:53:48 pcf01-master-2 Deployment cee-irv1bmpcf/pgpool has not matched the expected number of replicas for longer th...
k8s-pod-not-ready cb2c8ee4a9c9 critical 04-06T01:53:48 pgpool-65fc8b8d5f-2w9 Pod cee-pcf/pgpool-65fc8b8d5f-2w9nq has been in a non-ready state for longer than 5 min...
분석
접근 방식 1
Kubernetes(K8s) 노드에 로그인한 후 현재 '통화 불가능' 상태인 노드의 알림을 확인합니다.
업그레이드 또는 유지 관리 프로세스를 확인하는 것이 좋습니다. 이때 업데이트를 적용하거나, 새 소프트웨어를 설치하거나, 기타 필요한 작업을 수행하거나, 포드 가용성에 영향을 줄 수 있는 지속적인 유지 관리 활동을 수행하기 위해 포드를 오프라인으로 전환할 수 있습니다.
미러 포드는 피어 사이트(GR)에서 사이트 업그레이드 작업을 수행하는 동안 언급된 상태가 되어야 합니다.
마스터 노드에 연결하고 미러 포드 상태를 확인합니다.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep mirror
NAMESPACE NAME READY STATUS RESTARTS AGE
pcf-pcf01 mirror-maker-0 0/1 Running 1 5d23h
#Post upgrade Activity mirror-maker pod status
cloud-user@pcf01-master-1:~$ kubectl get pods -A|grep mirror
pcf-pcf01 mirror-maker-0 1/1 Running 1 6d.
접근 방식 2
Kubernetes(K8s) Pod가 CEE 내에서 준비 상태가 아님을 알리는 경고가 표시되면 Pod에 문제가 있으며 완전히 작동 중인 것으로 간주할 수 없음을 나타냅니다. 이 상태는 일반적으로 포드가 트래픽을 수락하거나 의도된 기능을 수행할 수 없음을 의미합니다.
'준비 안 됨' 상태의 원인을 파악하기 위해 알림 및 관련 정보를 분석합니다. 알림은 노드의 상태 변경을 초래한 특정 문제 또는 트리거에 대한 세부 정보를 제공할 수 있습니다. 노드가 '준비 안 됨' 상태에 있는 일반적인 이유로는 리소스 제약, 네트워크 연결 문제, 하드웨어 장애 또는 컨피그레이션 문제가 있습니다.
1단계. Pod 상태를 확인하고 Pod 상태를kubectl get pods
찾기 위해 명령을 사용하여 Pod 상태를 확인합니다. Pod가 준비되지 않은 경우 'Pending', 'CrashLoopBackOff' 또는 'Error'와 같은 상태를 표시할 수 있습니다.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -v Running
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cee-pcf pgpool-65fc8b8d5f-2w9nq 0/1 CrashLoopBackOff 147 (117s ago) 8d xxx.xxx.xxx.xx pcf01-master-2 <none> <none>
All nodes including master-2 are in Ready state
cloud-user@pcf01-master-1:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
Pcf01-master-1 Ready control-plane 667d v1.24.6
Pcf01-master-2 Ready control-plane 9d v1.24.6
Pcf01-master-3 Ready control-plane 9d v1.24.6
Pcf01-worker-1 Ready <none> 9d v1.24.6
Pcf01-worker-10 Ready <none> 9d v1.24.6
Pcf01-worker-11 Ready <none> 9d v1.24.6
Pcf01-worker-12 Ready <none> 9d v1.24.6
Pcf01-worker-13 Ready <none> 9d v1.24.6
Pcf01-worker-14 Ready <none> 9d v1.24.6
Pcf01-worker-15 Ready <none> 9d v1.24.6
Pcf01-worker-16 Ready <none> 9d v1.24.6
Pcf01-worker-17 Ready <none> 9d v1.24.6
Pcf01-worker-18 Ready <none> 9d v1.24.6
Pcf01-worker-19 Ready <none> 9d v1.24.6
Pcf01-worker-2 Ready <none> 9d v1.24.6
Pcf01-worker-20 Ready <none> 9d v1.24.6
Pcf01-worker-21 Ready <none> 9d v1.24.6
Pcf01-worker-22 Ready <none> 9d v1.24.6
Pcf01-worker-23 Ready <none> 9d v1.24.6
Pcf01-worker-3 Ready <none> 9d v1.24.6
Pcf01-worker-4 Ready <none> 9d v1.24.6
Pcf01-worker-5 Ready <none> 9d v1.24.6
pcf01-worker-6 Ready <none> 9d v1.24.6
pcf01-worker-7 Ready <none> 9d v1.24.6
pcf01-worker-8 Ready <none> 9d v1.24.6
pcf01-worker-9 Ready <none> 9d v1.24.6
2단계. 마스터 VIP에 로그인하고 pgpool pod를 가져옵니다.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
cee-pcf01 pgpool-65fc8b8d5f-2w9nq 0/1 Running 3173 (3m58s ago) 22d xxx.xxx.xxx.xx pcf01-master-2 <none> <n
cloud-user@pcf01-master-1:~$
3단계. pgpool Pod를 삭제합니다.
cloud-user@pcf01-master-1:~$ kubectl delete pod <pgpool pod name> -n cee-pcf
4단계. 새 pgpool Pod가 제대로 실행되고 있는지 확인합니다.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
5단계. CEE 운영 센터에서 pgpool pod와 관련된 알림이 지워졌는지 확인합니다.
[pcf01/pcfapp] cee# show alerts active summary