개인서버에 컨테이너 오케스트레이션 툴 사용하기
2025. 12. 23.
컨테이너 오케스트레이션 툴이 뭘까?
서버 한대를 기준으로 서비스를 올릴 땐 도커 컴포즈를 통해서 올리거나 단일 컨테이너를 올리면 쉽게 서비스를 올릴 수 있다. 하지만 만약 서버에 문제가 생긴다면 서비스는 바로 다운되고 말 것이다. 그럴때 필요한 것이 컨테이너 오케스트레이션 툴을 통해서 서비스의 가용성을 높이는 것이다.
컨테이너 오케스트레이션 툴은 여러개의 서버를 하나의 서버처럼 다룰 수 있게 해준다.
가령 A, B, C 세개의 서버가 있을 때 내가 올리는 서비스를 적절한 서버에 배치해주기도 하고, C 서버에 장애가 생겼을 때는 C 서버에 있던 서비스들을 A나 B에 자동으로 배치도 해주고, 서비스 컨테이너가 다운되었을 때 자동 복구 및 무중단 배포도 할 수 있도록 해준다.
즉 고가용성을 구현해준다는 말이다.
고가용성이란 무엇일까?
가용성이 높다는 말은 서비스가 가능한 한 살아있도록 만드는 설계를 말한다. 서버가 고장, 서비스 컨테이너 다운, 배포 중이어도 사용자는 서비스 중단을 느끼지 않고 사용할 수 있으면 가용성이 높다고 할 수 있는 것이다.
도커 스웜 사용하기
도커 엔진에 내장된 컨테이너 오케스트레이션 툴인 도커 스웜을 사용하면 쉽게 서비스의 가용성을 높일 수 있다. 서버에 도커가 설치되어 있다면 아주 쉽게 도커 스웜을 사용할 수 있다.
sudo ufw allow 2377/tcp
sudo ufw allow 7946
sudo ufw allow 4789/udp
위와 같이 포트를 열어준다. 2377/tcp, 7946/tcp, 7946/udp, 4789/udp 포트를 열어주면 스웜모드를 사용할 준비는 모두 끝난 것이다. 우분투를 사용하고 있기 때문에 ufw를 사용해서 포트를 열어주었고, 각자의 환경에 맞게 포트를 열어주기만 하면 된다.
docker swarm init
위와 같이 명령어를 입력하면 스웜모드가 시작된다.
Swarm initialized: current node (~~~) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token 토큰 매니저ip
To add a manager to this swarm, run and follow the instructions.