도커를 사용하는 머신이 하나라면 굳이 오케스트레이션에 대한 고민을 할 필요가 없다. 도커 클라이언트로 명령어만 치면 되는 일이고, 원격으로 제어할 때에도 단일 호스트에 대해서만 고려하기 때문이다.
그런데 두 개 이상의 호스트에서 도커 데몬이 돌고 있다고 가정해보자. 이럴 경우 머리는 매우 복잡해진다.
외부 사용자는 컨테이너를 생성해서 사용하고 싶은데, 어느 도커 데몬에 컨테이너를 생성하는 것이 맞을까? 일반적으론 가장 유휴 자원이 많은 곳을 선택해 컨테이너를 생성하는것이 옳을 것이다.
그러나 유휴 자원이 많은 호스트를 선택하는 것도, 모든 컨테이너를 각 서버별로 관리하는것도 귀찮은 일이다. 사실은 필자가 지난 프로젝트에서 이 문제에 당면했었는데, 그때는 위의 문제를 직접 수작업으로 해결했었다.
어느 호스트의 도커 데몬에 어느 컨테이너가 있는지, 각 서버마다의 이미지 동기화는 어떻게 할 것인지, 로드밸런싱은 어떻게 해서 사용자에게 가상 환경을 제공할 것인지 등.. 막상 해보니 엄청나게...