파드 오류 대응¶
파드 상태 확인¶
# 비정상 파드 확인
kubectl get pods -A | grep -v Running | grep -v Completed
# 특정 네임스페이스 파드 상태
kubectl get pods -n {namespace명}
# 파드 상세 정보 및 이벤트 확인
kubectl describe pod {pod명} -n {namespace명}
주요 오류 상태와 대응¶
CrashLoopBackOff¶
파드가 반복적으로 크래시되는 상태입니다.
-
파드 로그 확인으로 원인 파악
kubectl logs {pod명} -n {namespace명} # 이전 컨테이너 로그 확인 kubectl logs {pod명} -n {namespace명} --previous -
원인별 대응
원인 대응 OOM(메모리 부족) 리소스 limit 상향 또는 메모리 누수 수정 설정 오류 ConfigMap/Secret 확인 및 수정 의존 서비스 미준비 의존 파드 상태 먼저 확인
Pending¶
파드가 노드에 스케줄링되지 못하는 상태입니다.
kubectl describe pod {pod명} -n {namespace명}
# Events 섹션에서 스케줄링 실패 이유 확인
| 원인 | 대응 |
|---|---|
| 자원 부족 | 노드 자원 확인 후 요청량 조정 |
| Node selector 불일치 | 파드 스펙의 nodeSelector 확인 |
| PVC 마운트 실패 | PVC/PV 상태 확인 |
ImagePullBackOff¶
컨테이너 이미지를 가져오지 못하는 상태입니다.
kubectl describe pod {pod명} -n {namespace명}
# Events에서 이미지 풀 오류 상세 확인
- Gitea 레지스트리 접근 가능 여부 확인
- 이미지 태그 및 경로 정확성 확인
- ImagePullSecret 설정 확인
파드 재기동¶
정상 복구가 되지 않을 경우 파드를 재기동합니다.
주의
재기동으로 인한 Side effect가 발생할 수 있으므로 재기동은 마키나락스 담당자에게 확인 후 진행해주시기 바랍니다.
K9s¶
-
:을 입력하여 command mode로 진입합니다. -
Deployment를 검색합니다.
-
전체 deployment 검색
> deploy all -
특정 namespace deployment 검색
> deploy -n {namespace명}
-
-
재기동이 필요한 Pod의 Deployment를 선택한 후
r을 입력하면 자동으로 기존 Pod 삭제 및 신규 Pod 생성의 Rollout을 수행합니다. Replicaset이 있는 경우에도 Deployment만 재기동하면 Pod의 모든 Replicas는 자동으로 재배포됩니다.
CLI¶
-
마스터 노드 1번 서버에 접속합니다.
-
deployment를 검색합니다.
-
전체 deployment 검색
kubectl get deploy -A -
특정 namespace deployment 검색
kubectl get deploy -n {namespace명}
-
-
재기동이 필요한 Pod의 Deployment 명을 입력하고 재기동을 실행합니다.
kubectl rollout restart deployment/{deployment명} -n {namespace명}
