Learning
토픽 7 / 85·프로세스 관리

cgroups / namespaces (컨테이너 격리 기반)

cgroups / namespaces (컨테이너 격리 기반)

Linux 커널이 제공하는 프로세스 자원 제한(cgroups)과 환경 격리(namespaces) 메커니즘으로, 컨테이너 기술(Docker, Kubernetes)의 핵심 기반

cgroups (Control Groups): 프로세스 그룹의 CPU, 메모리, I/O, 네트워크 대역폭 등 자원 사용량을 제한·계측·격리

  • cgroups v1: 각 자원 컨트롤러(cpu, memory, blkio)가 독립 계층, 관리 복잡
  • cgroups v2: 단일 통합 계층, 자원 분배 일관성, 압력(PSI) 모니터링, 위임(Delegation) 지원

namespaces: 프로세스에 독립된 시스템 자원 뷰를 제공하여 격리

  • PID NS: 프로세스 ID 격리(컨테이너 내 PID 1), MNT NS: 파일시스템 마운트 격리
  • NET NS: 네트워크 스택 격리(독립 IP/포트), UTS NS: 호스트명/도메인명 격리
  • IPC NS: IPC 자원 격리, USER NS: UID/GID 매핑(루트 권한 격리)

비교: cgroups(자원 제한/얼마나 사용) vs namespaces(환경 격리/무엇을 볼 수 있는지) vs VM(하이퍼바이저/완전 격리)

연관: 컨테이너, Docker, Kubernetes, 가상화, 프로세스 관리, 보안