1. 개요
<Docker 가상 환경 구축 입문>의 <Chapter 9-9. 서비스 스케일링>를 읽고 정리한 내용입니다.
2. 서비스 스케일링
- Scale out이란 서버의 수를 늘려 전체의 처리 능력을 향상시키는 것.
- 서버 부하가 높아진 경우, Swarm 모드에서는 서비스의 레플리카 수를 조정하여, 각 노드의 자원을 적절하게 사용할 수 있음.
- docker service scale이라는 명령어로 Docker Swarm에서의 scale out/in을 할 수 있음.
3. 서비스 스케일링 예제
- docker service scale 명령어로는 레플리카 개수를 증가시키거나 감소시킬 수 있음.
- 노드 개수를 늘리거나 노드 스펙이 향상된 경우, 각 노드의 레플리카 수를 증가시켜 노드의 자원을 효율적으로 사용할 수 있음.
-
레플리카 수가 2개인 nginx 서비스 생성
$ docker service create --name web --replicas 2 nginx sveg9ogys5h2rdp62427408wr overall progress: 2 out of 2 tasks 1/2: running [==================================================>] 2/2: running [==================================================>] verify: Service converged $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS sveg9ogys5h2 web replicated 2/2 nginx:latest
-
생성한 서비스의 레플리카 수를 4개로 스케일 아웃
$ docker service scale web=4 web scaled to 4 overall progress: 4 out of 4 tasks 1/4: running [==================================================>] 2/4: running [==================================================>] 3/4: running [==================================================>] 4/4: running [==================================================>] verify: Service converged $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS sveg9ogys5h2 web replicated 4/4 nginx:latest
-
반대로, 레플리카 수를 3개로 스케일 인
$ docker service scale web=3 web scaled to 3 overall progress: 3 out of 3 tasks 1/3: running [==================================================>] 2/3: running [==================================================>] 3/3: running [==================================================>] verify: Service converged $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS sveg9ogys5h2 web replicated 3/3 nginx:latest