2019.05.06 - Docker Swarm
Docker Swarm은 서버 클러스터링 솔루션.
- 단일 유닛으로서 다른 노드(PC)들을 orchestrate하고 각각의 라이프 사이클을 관리할 수 있도록 한다.
- 서버가 한, 두개가 아닐 때 이들을 통합적으로 관리해주는 툴이 필요한데 도커 스웜이 하는 역할이 바로 그 것.
- 여러 툴이 있으며 그 중 유명한 것으로는 쿠버네티스가 있다.
swarm에는 manager와 worker가 있다.
manager는 authority를 가질 수 있는 config가 존재하며 각각의 매니저들은 다른 매니저와의 혼선이 없도록 관리 한다.
Raft DB
---------------------------------------
Manager Manager Manager
---------------------------------------
Worker Worker Worker Worker Worker
이러한 구조로 되어있는데, Manager는 자신이 워커인 동시에 매니저 역할을 할 수도 있다.
swarm manager 안에는 여러 개의 task가 존재하고 각각의 task는 컨테이너를 실행한다.
$ docker swarm init
# docker swarm init을 하면 swarm 서비스를 시작할 수 있다.
$ docker service create IMAGE_NAME
$ docker service update SERVICE_NAME --replicas 3
# 컨테이너가 3개가 만들어지고, 그 중 하나를 docker container rm -f NAME 커맨드를 입력하더라도 service는 이내 새로운 녀석을 만들어 복구시킨다.
# Swarm에서 service는 docker container run을 대체한다.
# Docker service는 docker container 여러 개를 묶어 놓은 느낌이다.
- 단일 유닛으로서 다른 노드(PC)들을 orchestrate하고 각각의 라이프 사이클을 관리할 수 있도록 한다.
- 서버가 한, 두개가 아닐 때 이들을 통합적으로 관리해주는 툴이 필요한데 도커 스웜이 하는 역할이 바로 그 것.
- 여러 툴이 있으며 그 중 유명한 것으로는 쿠버네티스가 있다.
manager는 authority를 가질 수 있는 config가 존재하며 각각의 매니저들은 다른 매니저와의 혼선이 없도록 관리 한다.
Raft DB
---------------------------------------
Manager Manager Manager
---------------------------------------
Worker Worker Worker Worker Worker
이러한 구조로 되어있는데, Manager는 자신이 워커인 동시에 매니저 역할을 할 수도 있다.
swarm manager 안에는 여러 개의 task가 존재하고 각각의 task는 컨테이너를 실행한다.
$ docker swarm init
# docker swarm init을 하면 swarm 서비스를 시작할 수 있다.
$ docker service create IMAGE_NAME
$ docker service update SERVICE_NAME --replicas 3
# 컨테이너가 3개가 만들어지고, 그 중 하나를 docker container rm -f NAME 커맨드를 입력하더라도 service는 이내 새로운 녀석을 만들어 복구시킨다.
# Docker service는 docker container 여러 개를 묶어 놓은 느낌이다.
댓글
댓글 쓰기