배경
분명 잘 뜨던 서비스에 새로운 기능을 추가하고 몇 가지 자원 설정을 변경하면서 부터 POD 생성이 안되는 현상이 발생하였다 :(

k9s로 확인해보면 상단의 전체 cpu 사용량은 10% 수준이지만 7개의 pod중 5개가 pending 상태인 것을 확인할 수 있다.

자세히 확인해보면 위와 같이 Insufficient cpu를 확인 할 수 있다.
원인 찾기
- 각 노드에 항당된 자원 출력
- 내 모든 노드에 할당된 CPU 상태
원인분석
쿠버네티스 스케줄러는 새로운 Pod를 배치할 때 Requests 값을 본다.
- 신규 배치 잡(Batch Job) 도입:
- Alloy DS(DaemonSet)의 자원 잠식 (기초 원인):
- Backend 서비스의 과도한 자원 예약 (결정적 원인):
- 자원 파편화(Fragmentation) 현상 발생:
반성/성찰
- 노드를 늘리면 그 만큼 ds가 불필요하게 차지하는 공간이 늘어나는 것을 간과하였음
- 서비스의 CPU가 계속 치고 올라가니까 노드 자원 고려없이 cpu request를 무지성 상향 조정
조치
- 노드를 줄이자!
- 자원을 제대로 분배하자!
- 추가 자원 구매
| 호스트 | CPU | RAM | VM 구성 (Role) | vCPU | vRAM | 비고 |
|---|---|---|---|---|---|---|
| N100 #1 | 4C/4T | 16GB | Master-01 | 2 | 4GB | 제어부 분산 (HA) |
| N100 #2 | 4C/4T | 32GB | Master-02 | 2 | 4GB | 제어부 분산 (HA) |
| Worker-02 | 2 | 24GB | 일반 워크로드 | |||
| N100 #3 | 4C/4T | 32GB | Master-03 | 2 | 4GB | 제어부 분산 (HA) |
| Worker-03 | 2 | 24GB | 일반 워크로드 | |||
| 5825U | 8C/16T | 64GB | Super-Worker-01 | 14 | 60GB | 대장 노드 |
| 합계 | 20C / 28T | 144GB | 총 VM 7개 | 24 vCPU | 120GB | IaC 관리 최적화 |
- 위와 같은 구성으로 변경