
51
제
3
장
cgroups
와 제어 그룹
이번 장에서는 컨테이너를 만드는 데 쓰이는 기초적인 구축 요소 중 하나인
cgroups
메커니즘
을 소개한다.
‘
control
groups
’를 줄인
cgroups
는
1
주어진 그룹에 속한 프로세스들이 사용할 수 있는 자원
(메모리나
CPU
, 네트워크 입출력 등)을 제한하는 수단이다. 보안의 관점에서, 제어 그룹들을
잘 조율하면 한 프로세스가 자원을 혼자 너무 많이 사용해서 다른 프로세스의 행동에 영향을 미
치는 일을 방지할 수 있다. 또한, 하나의 제어 그룹에 속할 수 있는 프로세스의 수를 제한하는
pid
라는 제어 그룹도 있다. 이 제어 그룹은 포크 폭탄 (
fork
bomb
)의 효과를 억제할 수 있다.
참고:
포크 폭탄은 프로세스가 자신을 포크로 복제하고, 복제된 프로세스들이 다시 자신을 더 많이 복제하
는 식으로 프로세스들이 지수적으로 증가하는 것을 말한다. 그러면 자원이 고갈되어서 컴퓨터가 마비된다.
몇 년 전 필자의 강의를 찍은 동영상 (
https
://
oreil
.
ly
/
Us75y
)에
pid
제어 그룹을 이용해서 포크 폭탄의 효
과를 억제하는 방법이 나오니 참고하기 바란다.
제
4
장에서 자세히 보겠지만 컨테이너는 보통의 리눅스 프로세스로 실행되므로,
cgroups
를
이용해서 각 컨테이너가 사용할 수 있는 자원들을 제한하는 ...