1. zembutsu

    Posted

    zembutsu
Changes in title
+SkyDNS2のセットアップ方法
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,103 @@
+## 概要
+SkyDNS2 の実行環境を構築し、実行するまでの手順のまとめ。前提条件としての Etcd の環境構築と、SkyDNS の構築手順を含む。ただし、SkyDNS の実行や Etcd の運用に関する技術は扱わない。
+
+また、当文章における `SkyDNS` とは、特に明示が無い限り2014年6月に再構成された `SkyDNS2` を指す。SkyDNS2 は、サービス検出(Service Discovery)と告知(Announcement)するシステムで、GitHub 上のプロジェクト https://github.com/skynetservices/skydns である。元々 SkyDNS として公開されていた [SkyDNS1](https://github.com/skynetservices/skydns1) とは構造が異なる。大きく違うのは、データ保存のバックエンド・システムに Etcd に前面依存している。
+
+### Consul と SkyDNS の違い
+
+Consul と SkyDNS は、どちらもサービス検出(Service Discovery)を行う事ができる。前者がオーケストレーションツールであるのに対し、SkyDNS はサービス検出と DNS 回答に特化している。Consul は独自で KVS を持つが、SkyDNS はバックエンドに Etcd を採用している。いずれも Raft プロトコルによるデータ永続性を保証。
+
+詳細:Consul vs. SkyDNS - Consul
+http://www.consul.io/intro/vs/skydns.html
+
+## 構築に必要な環境
+
+* Go 言語の開発環境 version 1.2 以上
+
+## 構築手順
+
+SkyDNS を実行する為には、バックエンドである Etcd のセットアップが必須である。そのため、作業の流れは Etcd の構築の後、SkyDNS を構築する。
+
+### 1. Etcd のセットアップ
+
+#### バイナリを使う方法(v.0.4.5 / x86_64)
+
+```
+curl -o etcd-v0.4.5-linux-amd64.tar.gz \
+ -L https://github.com/coreos/etcd/releases/download/v0.4.5/etcd-v0.4.5-linux-amd64.tar.gz
+tar xvfz etcd-v0.4.5-linux-amd64.tar.gz
+sudo cp etcd-v0.4.5-linux-amd64/etcd /usr/bin/etcd
+```
+
+
+#### コードから構築する方法
+
+```
+git clone https://github.com/coreos/etcd
+cd etcd
+./build
+sudo cp ./bin/etcd /usr/bin/etcd
+```
+
+### 2. SkyDNS のセットアップ
+
+```shell-session
+[zem@sakura1 go]$ go get -d -v github.com/coreos/go-etcd/etcd
+github.com/coreos/go-etcd (download)
+[zem@sakura1 go]$ go get -d -v github.com/skynetservices/skydns
+github.com/skynetservices/skydns (download)
+github.com/coreos/go-log (download)
+bitbucket.org/kardianos/osext (download)
+github.com/coreos/go-systemd (download)
+github.com/miekg/dns (download)
+github.com/miekg/go-metrics (download)
+github.com/influxdb/influxdb (download)
+github.com/rcrowley/go-metrics (download)
+github.com/stathat/go (download)
+[zem@sakura1 go]$ cd ~/go/src/github.com/skynetservices/skydns/
+[zem@sakura1 skydns]$ go build
+[zem@sakura1 skydns]$ sudo cp ./skydns /usr/bin/skydns
+```
+
+## 起動手順
+Etcd が稼働した状態で、SkyDNS の起動を試みること。
+
+```text:etcd起動例
+# etcd -peer-addr 127.0.0.1:7001 -addr 127.0.0.1:4001 \
+ -data-dir /opt/etcd -name machine1
+```
+
+```text:skydns起動例
+# export ETCD_MACHINES='http://127.0.0.1:4001'
+# skydns
+```
+なお、デフォルトでは Port 53 を使用とするが、ポート重複を避けたい場合は `skydns -addr=127.0.0.1:10053` のように実行する。
+
+### skydns の起動時オプション
+
+* `addr`: SkyDNS がリッスンする IP:port の情報で、デフォルトは `127.0.0.1:53`
+* `domain`: SkyDNS に権威ががあるドメインで、デフォルトは `skydns.local.`
+* `dnssec`: DNSSED を有効化
+* `hostmaster`: hostmaster(管理者)が使うメールアドレス
+* `local`: skydns インスタンス向けの、オプションのユニーク値であり、デフォルトは none。この状態では `local.dns.skydns.local` を返す。
+* `round_robbin`: A や AAAA レコードの応答をラウンドロビンによる並び替えを有効化します。デフォルトは trueo.
+* `nameservers`: ドメインの権威が無い問い合わせが届いた時、DNS リクエストを指定したネームサーバ(IP:ポート の組み合わせの配列)に転送します。
+* `read_timeout`: ネットワーク読み込みのタイムアウトで、etcd に DNS 問い合わせを行う時のもの
+* `ttl`: ノードが etcd にセットされてから応答するまでのデフォルト TTL 秒で、デフォルトは 3600。
+* `min_ttl`: NXDOMAIN 時の最小 TTL 秒を指定します。デフォルトは 30。
+* `scache`: DNSSEC シグニチャ・キャッシュの上限値で、指定しない場合のデフォルとは 10,000 レコード。
+* `rcache`: レスポンス・キャッシュの上下値で、指定しない場合のデフォルトは 0 。
+* `rcache-ttl`: レスポンス・キャッシュの TTL で、指定しない場合のデフォルトは 0。
+
+
+
+
+
+
+
+
+
+
+
+
+