쿠버네티스 용어 사전
트러블슈팅NotReady · kubelet · crictl · DiskPressure

노드 진단

NotReady는 kubelet이 보고를 못 하는 상태. 디스크·CNI·인증서가 흔한 원인이다.

kubectl get nodes
kubectl describe node node1 | grep -A15 Conditions
Conditions
  Ready              False 면 kubelet 이 보고를 못 하고 있다
  MemoryPressure     메모리 부족 → 파드 퇴출이 시작된다
  DiskPressure       디스크 부족 → 이미지 GC · 파드 퇴출
  PIDPressure        PID 고갈

NotReady 의 흔한 원인

  • kubelet 이 죽었다 — systemctl status kubelet
  • CNI 플러그인이 준비 안 됨 — 노드가 NotReady 로 고정된다
    • (파드 네트워크를 설정할 수 없어서다)
  • 디스크가 찼다 — 이미지·로그가 원인인 경우가 많다
  • 인증서 만료 — kubelet 이 API 서버와 못 붙는다
  • 노드 자체가 죽었다 — 네트워크 단절 포함
# 노드에 들어가서
journalctl -u kubelet -f --since '10 min ago'
crictl ps -a                # 컨테이너 목록 (docker ps 대신)
crictl logs <container-id>
df -h /var/lib/kubelet /var/lib/containerd

crictl 을 쓰는 이유 — 런타임이 containerd 라 docker 명령이 없다 "쿠버네티스가 Docker 를 뺐다" 의 실제 결과가 이것이다

디스크 압박이 만드는 연쇄

디스크가 차면

  • kubelet 이 이미지 GC 를 돌린다
  • 그래도 부족하면 파드를 퇴출한다 (BestEffort 부터)
  • 새 파드가 이미지를 못 받는다
  • 노드가 NotReady 로 빠진다

원인 대부분이 로그다

  • 컨테이너 로그 로테이션 미설정
  • emptyDir 에 큰 파일을 쌓는 워크로드
  • 안 쓰는 이미지 누적

노드가 죽으면 파드는 어떻게 되나

  • ① 노드가 상태 보고를 멈춘다
  • ② 일정 시간(기본 40초) 후 Ready=Unknown 이 된다
  • ③ 노드 컨트롤러가 NoExecute 테인트를 건다
  • ④ 파드에 tolerationSeconds(기본 300초)가 붙어 있어 그만큼 버틴다
  • ⑤ 그 뒤 파드가 퇴출되고 다른 노드에 다시 생긴다

즉 노드 장애에서 복구까지 기본 설정으로 5분 이상 걸린다 더 빠른 복구가 필요하면 이 값들을 조정한다 (단 너무 짧으면 일시적 네트워크 흔들림에도 파드가 옮겨 다닌다)

노드 압박 임계값

kubelet 이 퇴출을 시작하는 기준이 있다 (기본값 예)

memory.available< 100Mi
nodefs.available< 10%
imagefs.available< 15%
nodefs.inodesFree< 5%
soft 와 hard 가 있다
  soft   유예 기간을 두고 정상 종료로 퇴출
  hard   즉시 퇴출

퇴출된 파드는 Evicted 상태로 남는다 — 자동으로 정리되지 않는다

  • kubectl delete pods --field-selector=status.phase=Failed -A

노드 교체 절차

  • ① kubectl cordon node1 새 파드 차단

  • ② kubectl drain node1 --ignore-daemonsets --delete-emptydir-data

  • ③ 작업 (업그레이드 · 재부팅 · 교체)

  • ④ kubectl uncordon node1 다시 받는다

  • 주의

    • PDB 때문에 drain 이 멈출 수 있다 (정상 동작이다)
    • DaemonSet 파드는 옮길 수 없어 제외한다
    • 로컬 볼륨을 쓰는 파드는 옮길 곳이 없다 — 별도 계획이 필요하다

면접 함정

  • "NotReady면 파드도 죽는다" → 파드는 계속 돌 수 있다. 보고와 새 배포가 멈출 뿐이다.
  • "노드가 죽으면 즉시 옮겨간다" → 기본 설정으로 5분 이상 걸린다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 트러블슈팅 — 증상에서 원인으로