cgroup
- 프로세스에 대한 리소스 분리 및 할당 제어를 제공하는 리눅스 커널 기능
- 이를 통해 프로세스를 계층형 컨테이너로 그룹화하고 이러한 컨테이너 간의 CPU, 메모리, 디스크 I/O 및 네트워크 대역폭과 같은 시스템 리소스 할당을 관리할 수 있음
- cgroup이 관리할 수 있는 리소스의 컨트롤러는 파일 시스템의 형태로 관리되고 있음
cgroup driver
- 리소스 관리를 위해 kubernetes 런타임이 기본 리눅스 커널의 cgroup 하위 시스템과 상호 작용하는 방법
- kubernetes 클러스터에서 사용되는 컨테이너 런타임을 구성할 때 설정됨
사용 가능한 cgroup driver
1. cgroupfs
- kubernetes의 기본 cgroup 드라이버
- cgroupfs 파일 시스템을 사용하여 컨테이너에 대한 리소스 제한을 관리하고 적용함 (직접 매핑)
- 대부분의 리눅스 배포판에서 지원됨
- tree /sys/fs/cgroup 로 디렉터리 구조 확인 가능
2. systemd
- systemd init 시스템과 통합되며 systemd 자체 cgroup 관리 기능을 활용함 (slice > scope> service 단위의 계층 구조를 만들어 매핑)
- kubernetes는 systemd에서 제공하는 향상된 제어 및 자원 관리 기능을 활용할 수 있음
kubelet의 cgroup driver를 systemd로 설정했다면 반드시 컨테이너 런타임의 cgroup 드라이버 또한 systemd로 설정해야함
참고 1: https://kubernetes.io/docs/setup/production-environment/container-runtimes/#cgroup-drivers
'쿠버네티스' 카테고리의 다른 글
[쿠버네티스] 링커디 그라파나 연동 에러 (0) | 2023.07.06 |
---|---|
[쿠버네티스] 서비스 어카운트 생성 및 파드 내부에서 사용 (0) | 2023.06.26 |
[쿠버네티스] 클러스터 구축 중 마추진 오류들 (0) | 2023.06.09 |
[쿠버네티스] 파드 정리 (0) | 2023.05.29 |
[쿠버네티스] 컴포넌트 정리 (0) | 2023.05.23 |