Home Cgroup
Post
Cancel

Cgroup

프로세스에 할당하는 CPU, 메모리, 네트워크 대역폭 등과 같은 자원을 개별적으로 제한하기 위한 시스템 커널의 기능

컨테이너 런타임은 이 기술을 사용하에 컨테이너에 자원을 할당

cgroup을 관리하기 위한 기술


cgroupfs


직접 cgroup을 마운트해서 사용

  • cgroup이 관리할 수 있는 자원의 컨트롤러는 파일 시스템의 형태로 관리. 이와 관련된 정보를 파일 시스템의 형태로 변환시켜 주는 매니저가 cgroupfs
  • cgroupfs는 /sys/fs/cgroup 경로의 하위에 이 정보를 마운트하여 관리

Untitled

systemd


프로세스가 사용하는 자원을 관리하기 위해 slice > scope > service 단위의 계층적인 구조로 만들어 각 단위에 자원을 할당

  • /sys/fs/cgroup/systemd 하위의 파일 시스템의 계층 구조를 통해 확인 가능
  • systemd에 의해 관리되는 cgroup 정보는 /sys/fs/cgroup 하위의 자원의 컨트롤러(cpu, memory 등)의 하위에서 slice의 이름으로 된 파일 시스템으로 표현
  • 컨테이너에서 어떤 cgroup 매니저를 사용하고 있는지 확인하는 명령어
    • kubelet --version → Kubernetes v1.20.2
    • docker info | grep Cgroup

    Untitled

kubernetes v1.22로 올라가면서 기존에는 경고 수준으로 처리하던 cgroup driver을 정해진 설정이 없다면 default를 systemd로 설정하도록 코드가 변경됨

This post is licensed under CC BY 4.0 by the author.