...
컨테이너를 사용하면 개발자와 IT 운영팀이 훨씬 작은 단위로 업무를 수행할 수 있으므로 그에 따른 이점도 많습니다.
컨테이너 살펴보기
...
정보 |
---|
|
컨테이너
컨테이너는 애플리케이션을 실행하는 데 사용될 수 있는 OS 가상화의 한 형태입니다
이를 위해 컨테이너는 리눅스 커널의 몇 가지 새로운 기능으로 제작되었으며, 그 중 두 가지 주요 기능은 "namespace"와 "cgroups"입니다.
리눅스 네임스페이스
네임스페이스는 리눅스 커널의 기능 중 하나이며 리눅스의 컨테이너의 기본적인 측면입니다.반면에 네임스페이스는 격리 계층을 제공합니다.네임스페이스는 한 프로세스 집합은 한 리소스 집합을 보고 다른 프로세스 집합은 다른 리소스 집합을 보도록 커널 리소스를 분할하는 리눅스 커널의 기능입니다.
정보 |
---|
리눅스에는 다양한 종류의 네임스페이스가 있습니다.
|
Linux 네임스페이스를 만드는 것은 매우 간단하며 UTS namespace를 만들어서 확인해보겠습니다.
코드 블럭 |
---|
root@ubuntu-focal:~# unshare --fork --pid --mount-proc bash
root@ubuntu-focal:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 8960 3928 pts/4 S 13:00 0:00 bash
root 8 0.0 0.3 10612 3268 pts/4 R+ 13:00 0:00 ps aux |
이것을 호스트에서 보면 다음과 같이 보인다.
코드 블럭 |
---|
root@ubuntu-focal:~# ps aux | grep unshare
root 9258 0.0 0.0 7232 520 pts/3 S 13:09 0:00 unshare --fork --pid --mount-proc bash
root 9372 0.0 0.0 8160 720 pts/4 S+ 13:09 0:00 grep --color=auto unshare |
unshare namespace에서 빠져나오기 위해서는 docker에서 빠져나오듯이 exit로 빠져나올수 있다.
코드 블럭 |
---|
root@ubuntu-focal:~# exit
exit
root@ubuntu-focal:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 102540 8840 ? Ss 12:04 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 12:04 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 12:04 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 12:04 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< 12:04 0:00 [kworker/0:0H-kblockd] |
Cgroup
리눅스 네임스페이스로 다른 프로세스와는 별도의 프로세스를 만들 수도 있었습니다.
그러나 여러 네임스페이스를 생성할 경우 각 네임스페이스의 리소스를 제한하여 다른 네임스페이스의 리소스를 차지하지 않도록 하려면 어떻게 해야 합니까?
2007년에 몇몇 사람들은 우리만을 위한 cgroup을 개발했습니다.이것은 프로세스의 리소스를 제한할 수 있는 리눅스 기능입니다.Cgroups는 프로세스에서 사용할 수 있는 CPU 및 메모리의 한계를 결정합니다.
Cgroups(제어 그룹에서 약칭)는 프로세스의 리소스 사용량(CPU, 메모리, 디스크 I/O, 네트워크 등)을 제한, 계정 및 분리하는 리눅스 커널 기능으로, 2008년 1월 출시된 커널 버전 2.6.24에서는 제어 그룹 기능이 리눅스 커널 메인 라인에 병합되었습니다.
정보 |
---|
cgroups로 제어할 수 있는 일반적인 리소스는 다음과 같습니다.
|
1.4 컨테이너의 장점
(1) 가벼움
사용자의 Request Traffic 이 증가함에 따라, 가상머신이나 컨테이너를 추가적으로 배포합니다.
가상머신의 크기는 최소 몇 GB이지만, 컨테이너의 경우 Guest OS가 없기에 MB단위의 크기를 가집니다.
가상머신은 배포하는데 수분에서 수 십분의 시간이 소요되지만, 컨테이너는 배포에 소요되는 몇 초 밖에 걸리지 않습니다.
...