docker (centOS 7) 使用笔记6 - skydns
skydns被用于kubenets作为DNS服务。本次测试是单独使用skydns作为DNS服务器,且作为loadbalance使用。
前提:需要先安装配置etcd服务 (在前面的文章里,已经安装部署了etcd服务)
1. 下载安装
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.测试
配置域名
# 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添加一行)
nameserver 10.10.10.101
测试DNS的loadbalance能力(4级域名最左边的名称去除)
# 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重试的时候使用了第二个IP
如果使用了域名全称,则指向具体的IP
# telnet 1.api_test.skydns.local 8080 Trying 10.10.10.102... telnet: connect to address 10.10.10.102: Connection refused