-
coreos에서 만든 분산 key-value 스토리지GO 언어로 개발되어 있음.일반적으로. 데이터베이스 연결 정보, 캐시 세팅등의 설정정보들을 저장해두고 사용한다.설치GO로 개발되었기 때문에 바이너리 파일을 다운받아서 바로 실행하면 된다.https://github.com/coreos/etcd/releases/ 요기서 OS별 실행파일 다운로드다운받은 파일 압축풀면 실행파일이랑 참고용 문서들 들어있음.unzip etcd-v2.2.0-rc.0-darwin-amd64.zipetcd는 실제 etcd를 실행하는 파일이고 etcdctl은 etcd를 이용하기위한 클라이언트다.etcdctl이 없어도 rest api를 제공하기 때문에 curl을 통해서 사용할 수 있음.etcd를 클러스터로 구성했다면 curl을 사용할때 -L 옵션을 사용해 줘야 함.그래야 마스터 서버로 redirect되는걸 인식할 수 있음.etcd 실행./etcd 로 바로 실행가능사용하기버전 확인curl -L http://localhost:4001/version키입력curl -L http://127.0.0.1:2379/v2/keys/mykey -XPUT -d value="this is awesome"./etcdctl set /message Hello키 데이터 확인curl -L http://127.0.0.1:2379/v2/keys/mykey./etcdctl get /message키 지우기curl -L -X DELETE http://127.0.0.1:4001/v2/keys/mykey./etcdctl rm /message디렉토리 생성./etcdctl mkdir /foo-servicecurl -L -X PUT http://127.0.0.1:4001/v2/keys/foo-service/container1 -d value="localhost:1111"디렉토리에 키 입력./etcdctl set /foo-service/container1 localhost:1111디렉토리에 있는 키 리스트./etcdctl ls /foo-servicecurl -L http://127.0.0.1:4001/v2/keys/foo-service디렉토리에 있는 키 값 확인./etcdctl get /foo-service/container1디렉토리 지우기./etcdctl rm /foo-service/container1./etcdctl rmdir /foo-service디렉토리 변경사항 지켜보기./etcdctl watch --recursive /foo-servicecurl -L http://127.0.0.1:4001/v2/keys/foo-service?wait=true\&recursive=true으로 /foo-service의 변경사항을 기다림.다른 명령어 창에서 아래 명령 실행./etcdctl set /foo-service/container2 localhost:2222curl -L -X PUT http://127.0.0.1:4001/v2/keys/foo-service/container2 -d value="localhost:2222"첫번째 명령창에 입력된 값이 나오는걸 확인할 수 있음.watch명령으로는 한번 변경사항을 받으면 etcdctl이 종료됨.계속해서 지켜보려면 아래처럼 exec-watch로 실행../etcdctl exec-watch --recursive /foo-service -- sh -c 'echo "\"$ETCD_WATCH_KEY\" key was updated to \"$ETCD_WATCH_VALUE\" value by \"$ETCD_WATCH_ACTION\" action"'조건에 만족할때 업데이트../etcdctl set /message "Hi" --swap-with-value "Hello"curl -L -X PUT http://127.0.0.1:4001/v2/keys/message?prevValue=Hello -d value=Hi이전에 message라는 키에 Hello라는 값이 있어야만 실행됨. 아니면 에러.TTL 설정키에 일정 시간이 지난면 자동으로 삭제되도록 TTL(Time To Live)값을 초단위로 설정할 수 있음../etcdctl set /foo "Expiring Soon" --ttl 5curl -L -X PUT http://127.0.0.1:4001/v2/keys/foo?ttl=5 -d value=bar이렇게 foo키를 입력하고./etcdctl get /foo이렇게 확인해보면 5초뒤에 키가 없어지는걸 확인할 수 있음.etcd 웹 UI설치git clone https://github.com/henszey/etcd-browser.gitcd etcd-browser/docker build -t etcd-browser .실행docker run --rm --name etcd-browser -p 0.0.0.0:8000:8000 --env ETCD_HOST=10.10.0.1 --env AUTH_PASS=doe -t -i etcd-browser참조
'Cloud' 카테고리의 다른 글
Large-scale cluster management at Google with Borg 정리 (0) 2015.09.21 kubernetes 기본 개념 (0) 2015.09.14 libvirt 사용하기 (0) 2015.03.25 가상화 이미지 빌더 도구인 Oz (0) 2015.03.24 OpenStack 이미지 만들기 (0) 2015.03.23 댓글