LoginSignup
4
3

More than 5 years have passed since last update.

Dockerizeされたskydnsとetcdを動かす

Last updated at Posted at 2014-12-27

Dockerizeされたskydnsとetcdをどう動かしたかの記録を残す。
但し、digで応答が返ってくるのを確認した程度の状態なので後で追加、修正するかも。
結局二行で動かせたけど、必要なパラメータを把握するのに苦労した。

環境

ソフトウェア バージョン
boot2docker-cli v1.3.1
docker 1.3.0
skydns 2.0.1d
etcd 0.4.6

起動方法

etcd

$ docker run -it --name etcd --rm -p 7001:7001 -p 4001:4001 coreos/etcd:v0.4.6 --addr=$(boot2docker ip 2>/dev/null):4001 --peer-addr=$(boot2docker ip 2>/dev/null):7001

skydns

$ docker run -it -p 53:53 -p 53:53/udp --name skydns --link etcd:etcd --rm -e ETCD_MACHINES=http://etcd:4001 skynetservices/skydns:latest --addr=0.0.0.0:53

registrator

registratorは以下の感じで動かせた。

$ docker run --name registrator -h registrator -v /var/run/docker.sock:/tmp/docker.sock progrium/registrator skydns2://$(boot2docker ip 2>/dev/null):4001/skydns.local

動作確認

ダミーの情報をetcdに登録

skydnsのREADMEに書いてある例を使って、サービスの情報をetcdに登録

$ curl -XPUT http://$(boot2docker ip 2>/dev/null):4001/v2/keys/skydns/local/skydns/east/production/rails/1 -d value='{"host":"service1.example.com","port":8080}'
$ curl -XPUT http://$(boot2docker ip 2>/dev/null):4001/v2/keys/skydns/local/skydns/west/production/rails/2 -d value='{"host":"service2.example.com","port":8080}'
$ curl -XPUT http://$(boot2docker ip 2>/dev/null):4001/v2/keys/skydns/local/skydns/east/staging/rails/4 -d value='{"host":"10.0.1.125","port":8080}'
$ curl -XPUT http://$(boot2docker ip 2>/dev/null):4001/v2/keys/skydns/local/skydns/east/staging/rails/6 -d value='{"host":"2003::8:1","port":8080}'

digで登録情報を確認

$ dig @$(boot2docker ip 2>/dev/null) rails.staging.east.skydns.local

; <<>> DiG 9.8.3-P1 <<>> @192.168.59.103 rails.staging.east.skydns.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26296
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;rails.staging.east.skydns.local. IN    A

;; ANSWER SECTION:
rails.staging.east.skydns.local. 3600 IN A  10.0.1.125

;; Query time: 47 msec
;; SERVER: 192.168.59.103#53(192.168.59.103)
;; WHEN: Sat Dec 27 21:29:03 2014
;; MSG SIZE  rcvd: 65

参考URL

Dockerにおけるマルチホストでのコンテナ間リンク考察

CoreOS 上の Docker コンテナのサービス情報を registrator を使って SkyDNS2 に自動登録する

SkyDNS2 VERSION 2

skynetservices/skydns - Docker Hub

skynetservices/skydns - GitHub

coreos/etcd - Github

Etcd Configuration

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3