docker 는 작은 단위로 앱을 배포할 수 있게 해주는 서비스 입니다.
이미지를 만들어놓고 실행하는 상태를 컨테이너라고 하는데요. 분산 처리 목적으로 여러 서버에 컨테이너를 올리려면 상당히 번거롭습니다.
그래서 컨테이너를 자동으로 배치해주고 다양한 통합 기능을 제공하는 docker swarm 에 대해 간단하게 소개 드리겠습니다.
컨테이너를 자동으로 배치해주고 다양한 통합 기능을 제공하는걸 컨테이너 오케스트레이션 이라고 합니다. 직접 여러 서버에 접속해서 같은 명령어를 입력하는 수고를 자동화해준다고 보시면 되겠습니다.
swarm 모드에는 manager 와 worker 가 있습니다. 매니저는 매니저 노드와 worker 노드에 컨테이너를 분산 하여 실행시킵니다.
그림에서 나오는 것 처럼 고 가용성을 위해 매니저 노드는 최소 3개를 설정해야 합니다. 이렇게 설정하면 1개 노드가 죽어도 네트워크에 액세스 할 수 있습니다.
또 하나의 swarm 특징이 overlay 네트워크인데요, 어느 노드에 접속해도 동일한 네트워크에 접속한 것 처럼 가상의 망을 구축해 줍니다.