이번 포스팅에서는 오케스트레이션 도구를 사용하여 컨테이너를 운영하는 예제를 진행해보겠습니다.


2021.04.06 - [Linux/Docker] - Docker 를 사용한 이유 (Why Docker?)

2021.04.17 - [Linux/Docker] - Docker 사용해보기 - 1 (Why Docker 2편 + CentOS 7.9 Docker 설치)

2021.04.22 - [Linux/Docker] - Docker 사용해보기 - 2 (Nginx Docker 예제)

2021.05.10 - [Linux/Docker] - Docker 사용해보기 - 3 (python 모듈 Docker 에서 실행하기)


먼저 컨테이너에 대해 다시한번 봅시다.

docs.docker.com

컨테이너는 DOCKER_HOST 로 묶여 관리되지만 내부적으로 독립된 환경을 가지고 있습니다.

2부와 3부에서 생성한 컨테이너를 예시로 확인해봅시다.

 

Docker Container IP check

$ sudo docker exec flask_app hostname -I
$ sudo docker exec nginx hostname -I

 

exec 명령을 사용하면 컨테이너에 명령을 실행할 수 있다.

hostname -I 를 사용하면 현재 호스트의 ip 정보를 확인할 수 있다.

 

컨테이너의 ip 가 다른 것을 확인할 수 있다

 

curl 명령을 사용해서 해당 ip 에 요청을 보내보자

$ curl http://172.17.0.2

 


Container Orchestration

? : Docker Container 마다 독립된 환경을 가지고 있고 ip 로 접근이 가능하니 통신도 되고 잘 쓸수있겠다.

 

컨테이너가 예시에서는 2개뿐이지만 MSA(Microservices Architecture) 를 지향하는 현시점에서

컨테이너의 개수는 무한히 늘어날 수 있다.

(물론 대부분의 경우 아닐 것이고 구글이라던가..)

 

이때마다 각각의 컨테이너별로 Dockerfile 을 작성하고 빌드하고 하나씩 실행하고...

이런 불편함에 탄생한 것이 컨테이너 오케스트레이션 기술이라고 생각한다.

 

오케스트레이션 기술의 핵심기능
 - 컨테이너 자동 배치 및 복제
 - 컨테이너 그룹 로드 밸런싱
 - 장애 복구
 - 이외에도 수많은 장점이 많다..

 

오케스트레이션 기술의 대표주자

Kubernetes (77.1k)

docker-compose (22.6k)

Docker Swarm (5.8k)

Apache Mesos (4.7k)

 

괄호안의 숫자는 github star 개수이다. (2021-05-11 기준)

 

Kubernetes 에는 위에 서술한 핵심기능 외에도 수많은 기능이 존재하며

이를 전문적으로 다루는 사람을 위한 자격증도 존재한다.

CKA(Certified Kubernetes Administrator)

발급처인 CNCF 는 리눅스 재단의 일부이고 업계에서 인정하는 자격증이다.


추후 작성할 글에서 다룰 오케스트레이션 기술은 docker-compose 이다.

(Docker 문서에서 쉽게 접할 수 있었다)

 

목차는 이정도로 나올 듯 하다.

1. docker-compose 설치 (offline 설치 포함)

2. docker-compose.yml 작성방법 정리

3. docker-compose 로 여러 컨테이너를 실행하는 예제

 

 

Reference

http://www.mantech.co.kr/container_orchestration/

https://www.cncf.io/

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기