Kubernetes 노드 Disk Pressure 임계치 조정 (evictionHard)

노드 디스크 사용량이 임계치를 넘으면 DiskPressure 조건이 발생하고 파드가 축출(eviction).
기본 하드 임계치 (Linux 기준):

  • memory.available < 100Mi
  • nodefs.available < 10%
  • imagefs.available < 15%
  • nodefs.inodesFree < 5%

즉, 기본값은 루트(nodefs) 90% 사용, 이미지(imagefs) 85% 사용 시점에서 DiskPressure 발생.


조정 내용

evictionHard:
  imagefs.available: 5%
  memory.available: 100Mi
  nodefs.available: 5%
  nodefs.inodesFree: 5%
  • 조정 대상: 디스크 관련 임계치(nodefs.available, imagefs.available, nodefs.inodesFree) 전부 변경.
  • 미조정: memory.available 은 기본값 100Mi 그대로 유지.
  • 결과 (사용률 기준)
    • nodefs.available: 10% free → 5% free → 사용률 90% → 95%까지 허용
    • imagefs.available: 15% free → 5% free → 사용률 85% → 95%까지 허용
    • nodefs.inodesFree: 그대로 유지
    • memory.available: 그대로 유지
  • 조정대상 항목 설명
    • nodefs.available: 루트 파일시스템 여유 공간 임계치
    • imagefs.available: 컨테이너 이미지가 저장되는 파일시스템 여유 공간 임계치
    • nodefs.inodesFree: 여유 inode 비율
    • memory.available: 노드 메모리 여유량 임계치

📌 요약: 디스크 사용량이 95%까지 올라가도 DiskPressure가 걸리지 않도록 상향 조정
→ 기본 대비 여유 공간 버퍼를 크게 줄인 설정.
⚠️ 리스크: 로그 기록, 업데이트, 임시 파일 쓰기 실패 가능성 증가.


kubelet 설정 파일 수정

  1. kubelet 설정 파일 경로 확인
ps -ef | grep kubelet

출력에서 --config 옵션 뒤 경로 확인 (예: /etc/kubernetes/kubelet-config.yaml).

  1. 파일 수정
vi /etc/kubernetes/kubelet-config.yaml

아래 블록 추가 또는 수정:

evictionHard:
  imagefs.available: "5%"
  memory.available: "100Mi"
  nodefs.available: "5%"
  nodefs.inodesFree: "5%"

kubelet 재시작

systemctl restart kubelet

적용 확인

kubectl describe node <노드명> | grep -A5 Conditions


결론

  • 기본: nodefs 90%, imagefs 85% 사용 시 DiskPressure 발생
  • 조정 후: nodefs/imagefs 95% 사용 시까지 허용
  • kubelet 설정 수정 후 재시작으로 적용

ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. 본문 및 이미지를 무단 복제·배포할 수 없습니다. 공유 시 반드시 원문 링크를 명시해 주세요.
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. All rights reserved. Unauthorized copying or redistribution of the text and images is prohibited. When sharing, please include the original source link.

🛠 마지막 수정일: 2025.09.18