
Server Orchestration
오케스트레이션은 마이크로 서비스들을 컨테이너로 만들어 배포할 수 있도록 도와주며, 다음과 같은 다양한 기능들을 통해 서비스를 관리할 수 있게 도와줍니다.
- 컨테이너 자동 배포 / 배치 및 복제
 - 컨테이너 그룹에 대한 로드 밸런싱
 - 컨테이너 장애 복구
 - 클러스터 외부에 서비스 노출
 - 스케일 아웃(오토 스케일링)
 - 컨테이너 서비스 간의 인터페이스를 통한 연결 및 네트워크 포트 노출 제어
 
따라서 서버 오케스트레이션을 간단하게 정의하면 여러 대의 서버와 여러 개의 서비스를 편리하게 관리해주는 작업이라고 할 수 있습니다.
오케스트레이션 툴의 종류로는 Kubernetes, Mesos, Docker swarm, AWS ECS 등이 있으며, 각각 특정 상황에서의 장점을 가지고 있습니다.
- 적당한 규모 : Docker swarm
 - 큰 규모의 클러스터 : Kubernetes
 - AWS : ECS
 
해당 포스팅은 적당한 규모의 클러스터 구성으로 사용하기 위한 Docker swarm을 다룹니다.
Docker Swarm
도커 스웜은 도커에 내장되어 있는 오케스트레이션 툴 입니다. 단순한 기능들만 구현되어 있어 세부적인 컨트롤은 어렵지만, 도커 명령어와 compose를 그대로 사용할 수 있어서 다른 툴에 비해 압도적으로 쉽고 편리합니다. 2015년 1.0 버전에서는 1,000개의 노드에 50,000개 컨테이너도 문제 없이 테스트하여 안정성이 검증되었습니다.
도커 스웜에는 다음과 같은 용어들을 사용합니다.
- 노드 : 클러스터에 속한 도커 서버 단위
- 매니저 노드 : 스웜 클러스터를 관리하는 노드, 스웜 명령어를 실행할 수 있으며, 워커 노드처럼도 사용
 - 워커 노드 : 매니저 노드의 명령을 받아 컨테이너를 생성하고 상태를 체크하는 노드
 
 - 서비스 : 기본적인 배포 단위, 하나의 이미지를 기반으로 생성하고 기동할 컨테이너 수, 설정 등을 정의한 것 입니다.
 - 테스크 : 컨테이너 배포 단위, 정의된 하나의 서비스를 가지고 여러개의 테스크를 실행할 수 있습니다. 즉, 앞서 설정한 컨테이너 수에 맞게 기동 되는것이 테스크입니다. 테스크는 각각의 워커에 할당되는데, 이 때 고유의 일련 번호를 갖게 되며 이를 슬롯이라 부릅니다.
 
도커 스웜이 제공하는 기능은 다음과 같습니다.
- 스케줄링 :
 
How to
https://subicura.com/2017/02/25/container-orchestration-with-docker-swarm.html
Docker Swarm을 이용한 쉽고 빠른 분산 서버 관리
도커 스웜은 오케스트레이션 툴은 관리가 어렵고 사용하기 복잡하다는 편견을 완전히 바꿔놓았습니다. 구축 비용이 거의 들지 않고 관리 또한 쉬우며 다양한 기능을 쉽게 제공하고 가볍게 사용
subicura.com
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - 김충섭 개발자(퍼플웍스)
https://www.youtube.com/watch?v=16LNWMqphOA
https://www.sauru.so/blog/run-a-service-on-docker-swarm/
Docker Swarm에 Service 올려보기
이번 글에서는, “Getting Started with Docker Swarm“에서 만들어둔 Docker Swarm에 Service를 올려보려고 한다. 시험을 위한 엉터리 Service긴 하지만, Service와 Task가 무엇인지, 그리고 필요에 따라 어떻게 Servic
www.sauru.so
'devops' 카테고리의 다른 글
| [Redis] Redis Sentinel + HAproxy (0) | 2021.08.08 | 
|---|---|
| [Docker] Jenkins & fabric (0) | 2021.07.25 | 
| MQTT/AMQP (0) | 2021.06.18 | 
| Volatile / Lock (0) | 2021.06.17 | 
| ASP.Net Core에서 NSwag 사용하기 (0) | 2021.02.14 |