Kubernetes

컨테이너를 이해하기 위한 리눅스 기반 기술

hihikiki 2023. 7. 19. 14:29

컨테이너는 애플리케이션을 격리된 환경에서 실행하는 가상화 기술입니다.
이를 위해 리눅스 기반 기술을 사옹하는데 어떤 기술을 사용하는지 알아봅시다.

1. namespace

namespace는 프로세스가 격리된 환경에서 실행되게 해줍니다.
예를 들어, PID 네임스페이스는 프로세스 식별자를 격리하여 각 컨테이너가 독립된 프로세스 트리를 가질 수 있게 합니다.

2. cgroup

cgroup(Linux Control Group)은 프로세스의 자원 사용량을 제한합니다.
각 컨테이너는 cgroups를 사용하여 CPU, 메모리, 디스크 I/O 등의 리소스를 할당받고 제한할 수 있습니다.

3. chroot

chroot(Change Root)는 프로세스가 실행될 루트 디렉토리를 변경하는 명령어입니다.
이걸 이용해 특정 디렉토리를 가상의 루트파일 시스템으로 간주하여 해당 디렉토리에서 실행되는 프로세스는 실제 루트 파일 시스템에 접근할 수 없습니다.