Docker Compose를 사용하여 IBM Container를 스케일 아웃

소개



이전에 Docker Compose를 사용하여 IBM Container 관리 이라는 기사를 썼습니다. 이 기사에서는 docker-compose를 사용하여 Bluemix의 IBM Container 수를 동적으로 변경할 수 있는지 확인해 봅니다.

마지막 회의



지난번에는 다음과 같은 두 개의 컨테이너를 scale를 사용하여 IBM Container에 배포할 수 있음을 확인했습니다.
$ docker-compose ps
        Name           Command   State               Ports
----------------------------------------------------------------------
dockercompose_redis_1             Up
dockercompose_web_1               Up      169.44.119.192:5000->5000/tcp

docker-compose를 사용하여 IBM Container를 스케일 아웃



그럼, 조속히 본제에 들어갑시다. docker-compose 명령을 사용하여 웹 컨테이너 수를 늘려 보았습니다.
$ docker-compose -f docker-compose-bluemix.yml scale web=3
WARNING: The "web" service specifies a port on the host. If multiple containers for this service are created on a single host, the port will clash.
Creating and starting 2 ...
Creating and starting 3 ...
Creating and starting 3 ... done
$ docker-compose ps
        Name           Command   State               Ports
----------------------------------------------------------------------
dockercompose_redis_1             Up
dockercompose_web_1               Up      169.44.119.192:5000->5000/tcp
dockercompose_web_2               Up      172.31.0.162:5000->5000/tcp
dockercompose_web_3               Up      172.31.0.163:5000->5000/tcp

아무래도 WARNING이 나왔지만, web 컨테이너의 수가 3개로 늘어난 것 같습니다! 각 컨테이너의 IP 주소를 같은 호스트의 포트 번호 5000번을 할당한 것이 좋지 않은 것 같네요. 하지만, docker-compose 명령의 출력을 보면, 호스트 머신에 마음대로 새로운 IP 주소(172.31.0.162와 172.31.0.163)가 할당되어 각각을 새로운 컨테이너에 할당해, 일을 얻고 있는 것 같습니다. Bluemix의 대시보드 쪽도 확인해 보면. . .



3개의 컨테이너가 가동되고 있는 것을 확인할 수 있었습니다! 그런데 모처럼이므로 새로 만들어진 컨테이너 쪽에도 외부 IP 주소를 할당해 액세스해 봅시다. 덧붙여 내 Bluemix의 무료 계정에서는 외부 IP는 2개까지만 취득할 수 있으므로, 2개의 컨테이너에 외부 IP 주소를 할당합니다. docker-compose scale 에서 새 IP 주소를 얻고 주소를 늘린 컨테이너에 할당합니다.
$ cf ic ip bind 169.44.113.228 dockercompose_web_2
OK
The IP address was bound successfully.
$ docker-compose ps
        Name           Command   State               Ports
----------------------------------------------------------------------
dockercompose_redis_1             Up
dockercompose_web_1               Up      169.44.119.192:5000->5000/tcp
dockercompose_web_2               Up      169.44.113.228:5000->5000/tcp
dockercompose_web_3               Up      172.31.0.171:5000->5000/tcp

각각의 IP 주소에 대해, 브라우저로 액세스 해 보면. . .


각 웹 응용 프로그램이 동일한 redis 데이터베이스 컨테이너에서 동일한 항목을 가져오고 각 웹 응용 프로그램이 값을 증가시키는 것처럼 보입니다!

요약



Docker Compose를 사용하여 IBM Container를 확장할 수 있음을 확인했습니다. 그러나 이대로는 수동으로 외부 IP 주소를 취득하고 그 IP를 새로 시작한 컨테이너에 할당할 필요가 있어 일상적인 느낌이군요. 다음에 이 쪽의 순서를 자동화하는 방법에 대해 검증하고 싶습니다.

좋은 웹페이지 즐겨찾기