피드로 돌아가기
Kubernetes 1.36: Breaking Free from Container-Level Resource Constraints
Dev.toDev.to
Infrastructure

K8s 1.36 Pod-Level Resource Manager 도입으로 Sidecar 리소스 낭비 제거 및 전용 CPU 확보

Kubernetes 1.36: Breaking Free from Container-Level Resource Constraints

Pratheesh Satheesh Kumar2026년 5월 7일4advanced

Context

기존 Kubernetes의 Container-level 리소스 할당 구조로 인한 비효율 발생. Guaranteed QoS class 적용 시 경량 Sidecar 컨테이너까지 전용 CPU를 할당해야 하는 리소스 낭비와, 이를 회피할 시 메인 워크로드의 성능 보장 상실이라는 Trade-off 존재.

Technical Solution

  • kubelet의 CPU, Memory, Topology Manager 제어 단위를 Container에서 Pod 단위로 확장한 Pod-centric 할당 전략 채택
  • Pod level의 .spec.resources 필드 신설을 통한 워크로드 단위의 통합 Resource Intent 정의
  • managedResources 설정을 통해 메인 컨테이너에는 Exclusive CPU 및 NUMA alignment를 보장하고 Sidecar에는 Burstable Pool을 공유하는 하이브리드 할당 로직 구현
  • cpu-manager-policy: static 설정을 통한 하드웨어 수준의 CPU 격리 및 메모리 지역성 최적화
  • 워크로드 인지형 리소스 모델로의 전환을 통해 성능 보장과 자원 효율성 간의 충돌 해결

1. K8s

1.36 버전에서 PodLevelResourceManagers 및 PodLevelResources Feature Gate 활성화 여부 확인

2. NUMA alignment가 필수적인 ML Inference, HFT, Database 워크로드의 Pod 스펙 정의 검토

3. Sidecar 컨테이너의 리소스 제한치를 공유 풀로 전환하여 노드 자원 밀도 최적화 가능성 분석

4. Alpha 단계 기능임을 고려하여 Non-critical 클러스터에서 numastat 기반의 Locality 검증 수행

원문 읽기