Kubernetes 내부 구조 이해로 실제 장애를 추적하고 해결
사이드 프로젝트에서 Kubernetes 클러스터에 Pod를 배포했는데, 특정 노드에서만 `Pending` 상태에 멈추는 현상이 생겼습니다. kubectl describe pod로 확인해보니 리소스 요청량이 노드 여유 용량을 초과하는 메시지가 있었습니다. 그런데 kubectl top nodes로 보면 해당 노드에 여유가 있어 보였습니다. 알고 보니 `requests`와 `limits` 설정 차이 때문이었습니다. 실제 사용량이 아니라 requests로 선언한 값으로 스케줄링 판단을 한다는 걸, 그때 처음으로 내부 구조로 이해하게 됐습니다. 이후로는 requests와 limits를 명시적으로 분리해서 설정하는 습관이 생겼습니다.