도커 오케스트레이션 환경은 docker의 swarm과 google의 kubernates가 있습니다. ( 적어도 제가 아는 한도 내에서는.. ) 초반에는 비슷했던 것 같은데, 요새는 kubernates가 대세가 된 지 오래된 것 같습니다.
kubernates가 대세가 되었고, 좋은 것은 알지만, 혼자 쓰거나 작은 서비스에서 kubernates를 쓰기는 좀 부담스럽습니다. 왜냐면 kubernates는 기본적으로 3대의 노드를 가지고 있어야 하기 때문입니다. 단일 노드만 있어도 되는 minikube가 있기는 하지만, 운영용으로 사용할만한 물건은 아닌 것 같습니다. 그래서 저는 swarm을 사용합니다.
swarm은 단일 노드에서도 구동할 수 있고, 여러 개의 노드를 묶어 클러스터로 구성할 수 있습니다. 다만, swarm은 kubernates에 비해 UI가 없습니다. 그래서 모든 것을 CLI로 해결해야 합니다. 익숙해지면 불편함이 줄어들 수는 있지만, 마음 한 구석에는 kubernates의 UI를 부러워하는 항상 존재합니다.
최근에 알게된 swarmpit( https://swarmpit.io/ ) 이라는 툴을 알게 되었고, swarm의 단점을 줄여줄 툴이 되지 않을까 하는 희망을 가지고 있습니다. 디자인도 나름 깔끔하고 각 노드에 실행되고 있는 스택과 서비스들을 쉽게 확인할 수 있습니다.
매뉴얼에 나온대로 설치를 진행하면 필요한 이미지를 받아서 설치하고, swarm에 배포를 자동으로 진행합니다.
$ docker run -it --rm \
--name swarmpit-installer \
--volume /var/run/docker.sock:/var/run/docker.sock \
swarmpit/install:1.9
명령을 실행하고 잠시 기다리면, 사용할 수 있는 상태로 설치가 마무리됩니다. 기본 포트는 888번 포트로 접속하면 kubernates에서 부러워하던 대시보드를 사용할 수 있습니다.
swarmpit도 도커 스택으로 구동되며 app, agent, db, influxdb의 4개 스택으로 구성됩니다. 구동 중인 swarm의 모니터링은 아주 화려하지는 않지만 확인하기 쉽도록 보여주며, UI상에서 새로운 스택도 구동 가능한 것처럼 보였습니다.
일단 사용하고자 하는 주 목적인 스택의 상태 확인 및 재배포나 컨테이너 수를 조절하는 부분에서는 잘 동작하는 것을 확인했습니다. 물론 조금 더 사용해봐야겠지만 일단 첫 인상은 맘에 들었습니다. 다만, 아직까지 다른 곳에서 소개된 적이 별로 없는 것을 볼 때, 부족한 점이 있거나 하지는 않는지 좀 더 써봐야 판단이 설 것 같습니다.