MicroService

Consul & Registrator

behonestar 2016. 10. 5. 20:13


consul cluster 구성하기

1. consul 설치

$ wget https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip

$ unzip consul_0.7.0_linux_amd64.zip

$ sudo cp consul /usr/local/bin


2. consul server 실행 (@instance1)
* -bind에는 실행 중인 인스턴스의 IP를 적는다.

$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=agent1 -bind=172.31.4.225


3. consul client 실행 (@instance2)
* -bind에는 실행 중인 인스턴스의 IP를 적는다.

$ consul agent -data-dir /tmp/consul -node=agent2 -bind=172.31.0.27 -config-dir /etc/consul.d


4. joining 클러스터 (@instance1)
* 방화벽 8300, 8301, 8500 포트가 열려있어야 한다.

$ consul join 172.31.0.27



registrator를 사용하여 consul에 service 등록

1. registrator 컨테이너 실행 (@instance2)

$ docker run -d \

    --name=registrator \

    --net=host \

    --volume=/var/run/docker.sock:/tmp/docker.sock \

    gliderlabs/registrator:latest \

      consul://localhost:8500


2. redis 컨테이너 실행

* -P 옵션만 주면 호스트의 랜덤 포트가 컨테이너의 exposed 포트(6379)에 할당된다.

$ docker run -d -P --name=redis redis


3. consul 등록된 서비스 확인

$ curl localhost:8500/v1/catalog/services
{"consul":[],"redis":[]}


4. redis 정보 확인

$ curl localhost:8500/v1/catalog/service/redis

[{"Node":"agent2","Address":"172.31.0.27","TaggedAddresses":{"lan":"172.31.0.27","wan":"172.31.0.27"},"ServiceID":"ip-172-31-0-27:redis:6379","ServiceName":"redis","ServiceTags":[],"ServiceAddress":"","ServicePort":32769,"ServiceEnableTagOverride":false,"CreateIndex":126,"ModifyIndex":183}]


5. redis 정지하면 서비스에서 제거된 것 확인

$ docker stop redis

$ curl localhost:8500/v1/catalog/services
{"consul":[]}



'MicroService' 카테고리의 다른 글

CoreOS fleet unit 작성 및 실행  (0) 2016.08.12
CoreOS etcd 클러스터 구축하기  (0) 2016.08.11
CoreOS etcd cluster 사이즈 변경하기  (0) 2016.08.10