본문 바로가기
카테고리 없음

컨테이너(container)를 만드는 리눅스 기술 cgroup, namespace (초안 / 작성중)

by ahsung 2023. 2. 17.

 

작성 예정 / 요약

 

## cgroup

cgroup은 프로세스를 그룹화하고 그룹핑된 프로세스가 사용하는 컴퓨팅 리소스를 제어할 수 있는 기술 입니다.

cgroup으로 묶은 프로세스들의 CPU, Memory, I/O bandwidth를 제어할 수 있습니다.

 

## namespace

cgroup이 하드웨어적인 리소스를 분리시켰다면, namespace는 process 수준의 커널 리소스를 분리합니다.

예로, process가 실행되는 커널 환경 -> 파일시스템, 네트워크 스택(네트워크 설정, ip, port 등), pid, hostname 등등

+ namespace로 분류되어 생성된 리소스 환경은 호스트 시스템과 분리되어 있습니다.

+ namespace로 생성된 네트워크 스택은 직접적으로 외부로 노출할 수 없습니다. 호스트 시스템내에서 가상 인터페이스로 인식은 가능합니다. -> 이걸 bridge(일종의 가상 스위치)로 연결하여 포워딩할 수 있습니다. (일종의 NAT 기술)

 

일반적인 container는 cgroup과 namespace를 조합하여 구현하고 있습니다.

 

 

 

 

 

 

댓글