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 |