버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

보통 IT인이 아니라면 ‘컨테이너’ 라는 말에 다음의 그림을 상상하실 겁니다.

...

1.1 Container

사전적 의미로 컨테이너는 어떤 물체를 격리하는 공간을 뜻합니다. 하지만 우리에게 컨테이너는 어떤 의미일까요?

...

  • 컨테이너는 OS의 기능을 활용하여 프로세스를 격리하고, 격리된 프로세스가 CPU, 메모리, 스토리지, 네트워크 리소스를 쉽게 공유할 수 있게 해줍니다.

  • 컨테이너는 격리된 프로세스 형태로 실행되므로 환경에 상관없이 빠르고 안정적이며 일관된 배포를 보장합니다.

1.2 VM

  • VM은 하이퍼바이저라는 가상화 소프트웨어 계층을 사용하여 하드웨어를 가상화하고, 각 VM을 서로 분리하여 상호작용할 수 있는 가상 컴퓨팅 환경을 구축하는 기술입니다.

  • VM에는 애플리케이션, 관련 라이브러리 및 종속 항목과 함께 게스트 OS가 포함됩니다.

...

1.3 Container와 VM 비교

가상 환경에 익숙하다면 컨테이너를 가상 머신(VM)에 비교하여 생각하면 이해하기 쉽습니다.

...

컨테이너를 사용하면 개발자와 IT 운영팀이 훨씬 작은 단위로 업무를 수행할 수 있으므로 그에 따른 이점도 많습니다.

1.4 컨테이너의 장점

(1) 가벼움

  • 사용자의 Request Traffic 이 증가함에 따라, 가상머신이나 컨테이너를 추가적으로 배포합니다.

  • 가상머신의 크기는 최소 몇 GB이지만, 컨테이너의 경우 Guest OS가 없기에 MB단위의 크기를 가집니다.

  • 가상머신은 배포하는데 수분에서 수 십분의 시간이 소요되지만, 컨테이너는 배포에 소요되는 몇 초 밖에 걸리지 않습니다.

...

정보
  • 저수준 컨테이너 런타임: 주로 컨테이너를 생성/삭제 작업 수행

  • 고수준 컨테이너 런타임: 컨테이너를 관리 및 컨테이너 이미지를 다운로드 후 컨테이너 이미지를 추출하여 저수준 컨테이너 런타임에 전달하여 컨테이너를 생성하고 실행

낮은 수준의 컨테이너 런타임

하위 컨테이너 런타임의 주요 작업은 컨테이너를 생성하고 삭제하는 것입니다.

정보

낮은 수준의 컨테이너 런타임이 수행하는 작업은 다음과 같습니다.

  • cgroup을 만듭니다.

  • cgroup에서 CLI를 실행합니다.

  • 분리된 프로세스를 생성하기 위해, unshare 명령어 수행

  • 루트 파일 시스템을 설정합니다.

  • 명령이 완료된 후 cgroup을 정리합니다.

높은 수준의 컨테이너 런타임

여러 컨테이너 관리, 컨테이너 이미지 전송 및 관리, 낮은 수준의 컨테이너 런타임으로 컨테이너 이미지 로드 및 언팩에 중점을 둡니다.

...

컨테이너 Orchestration은 어떤 환경에서든 사용할 수 있으며, 재설계할 필요 없이 각기 다른 환경 전반에 동일한 애플리케이션을 배포하는데 도움이 됩니다.(

3.1

...

컨테이너 Orchestration 종류

Kubernetes

Docker Swarm

Apache Mesos

  • 구글에 의해 개발된 오픈 소스 프로젝트로 가장 널리 사용되고 있는 오케스트레이션 툴

  • Docker가 공식적으로 만든 오케스트레이션 툴

  • Apache 재단에서 발표된 오픈 소스 프로젝트

  • 컨테이너의 롤링 업그레이드 지원

  • 여러 Host를 묶어 클러스터 구성 및 배포, 자동 복구 지원

  • 컨테이너 추가, 복제, 업데이트, 롤백 지원

  • 베어메탈, VM환경, 퍼블릭 클라우드 등의 다양한 환경에서 작동

  • 호스트 OS에 Agent만 설치하면 간단하게 작동하고 설정이 쉬움

  • Docker 명령어와 Compose를 그대로 사용 가능

  • 수만 대의 물리적 시스템으로 확장할 수 있도록 설계됐으며, 대형 스케일 클러스터에 적합한 도구

  • 하둡, MPI, Hypertable, Spark 같은 응용프로그램을 동적 클러스터 환경에서 리소스 공유와 분리를 통해 최적화 가능

  • Docker 컨테이너를 적극적으로 지원

...

3.2

...

컨테이너 Orchestration의 활용

  • 컨테이너 프로비저닝 및 배포

  • 컨테이너 구성 및 스케쥴링 조정

  • 컨테이너 상태 모니터링 및 장애 복구

  • 컨테이너 추가 또는 제거로 확장 및 축소

  • 실행될 컨테이너를 기반으로 애플리케이션 설정

  • 컨테이너 간 상호 작용의 보안 유지

...