< 컨테이너 기술의 발전 >

기업들이 어떻게 서비스를 '효율적'으로 운영할 것 인가?를 어떻게 풀어왔는지 과거로 돌아가볼 필요가 있다.

 

가상화 기술이 발전하기 전

 

아래의 그림과 같이 Hardware에 OS가 설치, 그 위에 App에 필요한 Lib&Framework를 운영체제에 설치하고 실행을 할 수 있게 하였다.


< 발생하는 문제 >

추후에 다양한 서비스들이 실행이 되어야 하는 needs가 생기가 되고, 어떻게 하면 비용 효율성과 컴퓨팅 자원을 최대한 잘 쓸 수 있을까?

라는 고민을 하게 된다.

예를 들어 하나의 컴퓨터에 App1, App2, App3이 있을 수 있는데

App1이 필요로 하는 것이 L1, L2가 있을 수 있고 App2 App1 App3가 있을 수 있다.

App3는 L4가 필요로 한다면, App은 L1의 version 1을 의존성으로 가질 수 있고

App2는 L1의 version2를 의존성으로 가질 수 있다. 근데 보통 운영체제들이 공유 라이브러리를 설치하는 환경에서는 동일한 공유 라이브러리에서는 하나의 버전만 설치를 하게끔 허용하는 것이 대부분인데, 이러한 경우 보통 정적으로 컴파일된 L1 라이브러리를 app1과 배포해서 해결하는 방법도 있다.

이런 식으로 각각 애플리케이션이 공유하는 자원 충돌이 생기게 된다.

 

이러한 문제를 해결하기 위해 기업들은 고민하게 되고 어떻게 하면 app1,2,3을 격리를 시켜서 문제가 발생하지 않도록 하면서 컴퓨팅 자원을 효율적으로 쓸 수 있을까?

 

고민을 하게 된다. 그 고민을 통해서 나온 게 가상화 기술이라고 할 수 있다.

위의 그림은 가상머신을 이용한 가상화 방법인데, 하드웨어 위에 운영체제 위에 Hypervisor가 올라가게 되는데,

Hardware를 대상으로 하다 보니, 성능 효율성이 떨어지고 자원의 Overhead가 발생한다.

-> 이러한 문제들을 풀기 위해 어떠한 기술을 사용해야 문제점들을 해결할까? 해서 탄생한 기술이 아래의 그림이다.

 

하드웨어 위에 운영체제가 설치되고, 그 위에는 Docker 엔진이 위치하게 된다. 이러한 구조에서, 각각의 Docker 컨테이너는 호스트 운영체제에서 볼 때 일종의 프로세스로 처리된다. 이는 호스트 운영체제에서 직접 실행되는 프로세스와 본질적으로 큰 차이가 없지만, 몇 가지 중요한 차이점을 통해 격리 기술을 제공한다.

Docker는 chroot, 네임스페이스 등의 기술을 활용하여 프로세스 ID 격리, 네트워크 격리 등을 제공한다. 따라서 Docker 컨테이너는 호스트 운영체제에서 실행되는 프로세스이긴 하지만, 호스트 운영체제의 커널을 공유하면서도 다른 프로세스로부터 격리된 환경을 제공한. 이러한 점이 Docker 컨테이너를 특별하게 만든다.

Docker 컨테이너의 이런 특성 덕분에, 호스트 운영체제에서 직접 실행되는 프로세스에 비해 자원 오버헤드가 매우 적다. 또한, 각 컨테이너가 독립적인 환경을 가지므로 의존성 충돌 문제도 최소화된다. 이런 특징들이 Docker를 매우 효율적인 도구로 만들어 주었다.

 

< 쿠버네티스는 무엇인가? >

Container Orchestration System

 

Contatiner Engine 같은 경우, 하나의 서버 위에 Container를 어떻게 관리할 수 있을까 하는 "관리 소프트웨어"라고 보면 돼,  "Container Orchestration System은 여러 서버로 구성된 클러스터 환경에서 컨테이너들을 어떻게 잘 관리할 수 있을까?"

에서 비롯된 클러스터 환경에서 컨테이너를 관리하는 소프트웨어이다.

 

 

밑의 도표를 통해 더 쉽게 발전흐름도를 알아볼 수 있다.

 

 

출처: Fast Campus Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA

'Docker' 카테고리의 다른 글

01.Docker Image와 Container  (0) 2023.05.12
커널(kernel)  (0) 2023.05.12
Devops가 걸어온 길  (0) 2023.05.11
기존 인프라와 차이점/글로벌 인프라/AWS 리전  (0) 2023.05.11

+ Recent posts