Gurae Tech News

Tech Moves. We Track.

Advertisement

Kubernetes, cgroup v2 전환과 주요 기술 변화 완벽 가이드

기사 주제 관련 자료 이미지. 실제 사건 현장 사진이 아닙니다.
사진: Shubham Dhage / Unsplash. 기사 주제 관련 자료 이미지. 실제 사건 현장 사진이 아닙니다.

Kubernetes는 리눅스 커널의 cgroup 기능을 이용해 컨테이너별 CPU와 메모리 자원을 관리한다. 기존 cgroup v1은 Kubernetes v1.31부터 유지보수 모드에 들어갔으며, v1.35부터는 기본적으로 cgroup v1 노드에서 kubelet이 시작되지 않도록 설정되어 있다. 이에 따라 모든 리눅스 노드는 cgroup v2로 마이그레이션해야 하며, Kubernetes는 cgroup v2 사용을 권장한다.

기사 주제 관련 자료 이미지. 실제 사건 현장 사진이 아닙니다.
사진: Fotis Fotopoulos / Unsplash. 기사 주제 관련 자료 이미지. 실제 사건 현장 사진이 아닙니다.

cgroup v2는 단일 통합 계층 구조와 일관된 인터페이스를 제공해 자원 격리와 관리 기능이 크게 향상되었다. 특히 Kubernetes v1.36에서 알파 단계로 도입된 메모리 QoS 기능은 메모리 사용량에 따른 쓰로틀링과 보호 정책을 세분화해 안정적인 자원 관리를 지원한다. 이 기능은 cgroup v2에서만 가능하며, 커널 5.9 이상을 권장한다.

또한 cgroup v2는 OOM(Out Of Memory) 처리 방식을 개선해 컨테이너 내 모든 프로세스를 함께 종료하는 그룹 킬 방식을 기본으로 한다. 루트리스 컨테이너 지원도 공식적으로 제공되어 보안과 유연성이 강화되었다. Kubernetes v1.36에서는 Pod 사용자 네임스페이스 지원이 안정화되었다.

마이그레이션 시에는 Kubernetes와 컨테이너 런타임의 cgroup 드라이버 설정을 일치시키고, 커널 버전과 런타임 호환성을 확인해야 한다. kubeadm을 사용하는 경우 사전 검증 도구가 cgroup v1 사용 여부를 엄격히 검사한다. 또한 cgroup v2 전환에 따른 모니터링 도구와 런타임 설정 변경도 필요하다.

이외에도 cgroup v2는 eBPF 기반 장치 제어, PSI(Pressure Stall Information) 메트릭 제공 등 최신 리눅스 커널 기능을 활용해 Kubernetes 클러스터의 자원 관리와 성능 모니터링을 한층 강화한다. Kubernetes는 향후 cgroup v1 지원을 완전히 제거할 계획이므로, 클러스터 운영자는 조속한 전환 준비가 필요하다.

출처: Kubernetes