[docker] swarm

HyunDong Lee·2021년 4월 18일
0

docker

목록 보기
8/8
post-thumbnail

Docker Compose vs Swarm

compose는 동일 호스트에서 두 개 이상의 컨테이너를 운영한다.
swarm은 컨테이너들을 cluster하고 schedule하여 전체 컨테이너 cluster를 하나의 virtual 단일 컨테이너로 관리하고 각 컨테이너의 상태를 모니터링하여 컨테이너 수를 각 호스트에서 늘리거나 줄이며 운영하는 도구이다.
swarm은 여러 호스트에서 다수의 컨테이너들을 운영(orchestrate), 필요에 따라 컨테이너의 수를 늘리고 줄이는 auto-scaling 기능이다.

각각의 독립적인 host에서 분할하여 각각의 역할을 맡는다.

Swarm 사용전 creating a swarm cluster

(create additional VM's as workers in AWS)
$ docker swarm init --advertise-addr=[IP address]
(if successful, docker worker command is outputted)
(copy command outputted in master to be executed in worker)
(login to worker VM and paste the worker command)

(in master, docker node ls 명령을 실행하여 worker node 상황 확인)
swarm clustering을 하기전에 기존의 service가 하나 존재하여야해서 나는 apache를 사용했다.

Docker swarm CLI

$ docker service create --name <service name> --replicas <#of replicas> -p <port mapping> <image name> //서비스 포트 포워딩해서 만들기
$ docker service ls //만든 서비스 확인
$ docker rm -f <container id> //실행하여 auto scaling 확인
$ 
$

Docker auto scaling

$ sudo docker service scale <service name>=<# of service>

leader

worker

Swarm leave

$ sudo docker leave (on worker)
$ sudo docker leave --force (on master)

0개의 댓글