Ch 01::Docker 기초 파트개요(01)
강의/Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA

Ch 01::Docker 기초 파트개요(01)

Docker 기초 파트개요

해당 글은 'Fastcampus'의 나정호님의 강의 'Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA'를 보고 작성한 개인 정리글입니다.

 

컨테이너 기술의 발전

어떻게 서비스를 효율적으로 운영할 것인가? 로 부터 시작된 고민을 해결하면서 발전되어옴

전통적인 배포환경에서 점차 비용과 컴퓨팅 자원을 최대한 효율적으로 사용하고자 함.

그 결과 나온 배포환경이 가상화를 통한 배포방법이다.

 

다만, 가상머신을 이용한 방법에 발생한 문제가 있는데 결국 하드웨어 자원을 나눠서 쓰다보니 각각의 가상머신의 성능이 떨어질 수밖에 없으며, 그리고 각각의 가상머신을 띄우는데 필요한 자원 또한 많이 필요하다.

 

그러한 고민에서 나온 배포 환경이 컨테이너 엔진을 이용한 배포이다.

해당 컨테이너엔진의 대표격이 'Docker'이다. 해당 방법은 컨테이너 엔진은 각각의 컨테이너(process)를 갖고 있습니다.

각각의 컨테이너는 chroot, namespace 와 같은 격리 기술들이 사용되었다고 하는데 이건 따로 알아보고 정리해보도록 하겠다.

 

마지막으로 쿠버네티스 배포가 있는데 쿠버네티스는 Container orchestration system중 하나로 가장 대표적인 시스템이다.

쿠버네티스는 좀더 컨테이너들을 잘 관리하기 위한 시스템이다.

 

즉, 정리하면 다음과 같다

  1. 전통적 배포 : 하드웨어-운영체제 위에 라이브러리,프레임워크 설치 후 배포 
  2. 가상화 배포 : 하드웨어-운영체제 위에 하이퍼바이저를 통해 가상머신을 여러대를 만들어 배포
  3. 컨테이너 배포 : 하드웨어-운영체제 위에 컨테이너 엔진을 설치, 엔진의 각 컨테이너를 통해 배포
  4. 쿠버네티스 배포 : 각각의 컨테이너를 좀더 잘 관리하기위한 시스템인 쿠버네티스를 이용한 배포

 

컨테이너 기술의 발전 흐름

해당 기술의 흐름은 위 사진 참고 하면 되고, 다만.. 위 기술중 docker와 kubernetes가 약간(?) 표준이 된듯한 기술이다.