skydns被用於kubenets做爲DNS服務。本次測試是單獨使用skydns做爲DNS服務器,且做爲loadbalance使用。git
前提:須要先安裝配置etcd服務 (在前面的文章裏,已經安裝部署了etcd服務)github
1. 下載安裝api
go get github.com/skynetservices/skydns cd ~/go/src/github.com/skynetservices/skydns go build -v
2. 啓動服務器
#etcd的client URL,能夠指定集羣的多個地址,用逗號分隔 export ETCD_MACHINES="http://10.10.10.101:2379" #指定監聽地址爲內網IP nohup ./skydns -addr 10.10.10.101:53 &
3.測試測試
配置域名ui
# 1.api_test.skydns.local etcdctl set /skydns/local/skydns/api_test/1 '{"host":"10.10.10.102"}' # 2.api_test.skydns.local etcdctl set /skydns/local/skydns/api_test/2 '{"host":"10.10.10.103"}'
添加DNS解析(/etc/resolv.conf添加一行)spa
nameserver 10.10.10.101
測試DNS的loadbalance能力(4級域名最左邊的名稱去除)code
# telnet api_test.skydns.local 8080 Trying 10.10.10.102... telnet: connect to address 10.10.10.102: Connection refused Trying 10.10.10.103... telnet: connect to address 10.10.10.103: Connection refused
能夠看到telnet重試的時候使用了第二個IPserver
若是使用了域名全稱,則指向具體的IPblog
# telnet 1.api_test.skydns.local 8080 Trying 10.10.10.102... telnet: connect to address 10.10.10.102: Connection refused