본문으로 건너뛰기

애플리케이션 레벨 트러블 슈팅


애플리케이션 레벨 트러플 슈팅 과정

1. 외부 접근 가능 여부 확인

curl http://<web-service-ip>:<node-port>
  • curl 명령어를 사용해서 NodePort 또는 LoadBalancer IP로 접속을 시도한다.

2. 서비스 및 엔드포인트 확인

kubectl describe service <service-name>
  • ServiceSelectorPodLabel이 일치하는지 비교한다.
  • 또한, Endpoints 항목에 Pod의 IP가 올바르게 기입되어있는지 확인한다.
    • 만약 비어잇다면 Selector 설정 오류일 확률이 높다.

3. Pod 상태 및 이벤트 확인

kubectl get pods
kubectl describe pod <pod-name> # Pod의 이벤트 로그(Events) 확인
  • Pod의 상태가 Running인지, 혹은 CrashLoopBackOff인지 확인한다.
    • RESTARTS 횟수가 높다면 애플리케이션 내부 오류를 의심해야 한다.'

4. 애플리케이션 로그 분석

kubectl logs <pod-name>
kubectl logs <pod-name> --previous # 재시작 전의 마지막 로그 확인
  • 실시간 로그 확인: -f 옵션
  • PodRESTART되어 현재 로그만으로는 파악이 어려울 경우 --previous 옵션을 사용한다.

5. 데이터베이스 계층 확인

  • 다른 모든 사항이 정상인데도 오류가 발생한다면 DB 계층을 점검한다.
    • DB Pod, DB Service

레퍼런스