简介
SkyDNS是kubernetes用于服务发现的默认的开源DNS服务。本文将抛开kubernetes单独体验SkyDNS。其开源在github。依赖与etcd作为数据存储。
其官方介绍如下:
Version 2.5.2c
SkyDNS is a distributed service for announcement and discovery of services built on top of etcd. It utilizes DNS queries to discover available services. This is done by leveraging SRV records in DNS, with special meaning given to subdomains, priorities and weights.
This is the original announcement blog post for version 1. Since then, SkyDNS has seen some changes, most notably the ability to use etcd as a backend. Here you can find the SkyDNS2 announcement.
启动etcd服务
本文中将使用单机版etcd作为其服务。etcd发布版本下载可能需要FQ。
启动etcd
下载完成后解压,在解压目录中执行./etcd即可运行服务。
部署SkyDNS
安装SkyDNS
使用go get -u github.com/skynetservices/skydns即可将SkyDNS所需的文件从源码中下载并编译完成,位置位于$GOPATH/bin。
如果$GOPATH/bin在系统环境变量PATH中,则可以直接在终端模拟器(命令行)中执行skydns,如在我测试机上执行查看帮助如下:
sope:~ goyoo$ skydns --help
Usage of skydns:
-addr string
ip:port to bind to (SKYDNS_ADDR) (default "127.0.0.1:53")
-ca-cert string
CA Certificate
-discover
discover new machines by watching /v2/_etcd/machines
-dnssec string
basename of DNSSEC key file e.q. Kskydns.local.+005+38250
-domain string
domain to anchor requests to (SKYDNS_DOMAIN) (default "skydns.local.")
-hostmaster string
hostmaster email address to use (default "hostmaster@skydns.local.")
-local string
optional unique value for this skydns instance
-machines string
machine address(es) running etcd
-nameservers string
nameserver address(es) to forward (non-local) queries to e.g. 8.8.8.8:53,8.8.4.4:53
-no-rec
do not provide a recursive service
-path-prefix string
backend(etcd) path prefix, default: skydns (default "skydns")
-rcache int
capacity of the response cache
-rcache-ttl int
TTL of the response cache (default 60)
-round-robin
round robin A/AAAA replies (default true)
-rtimeout duration
read timeout (default 2s)
-scache int
capacity of the signature cache (default 10000)
-stubzones
support stub zones
-systemd
bind to socket(s) activated by systemd (ignore -addr)
-tls-key string
TLS Private Key path
-tls-pem string
X509 Certificate
-verbose
log queries
;; ->>HEADER<<- opcode: QUERY, status: NOERROR,> ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 5, ADDITIONAL: 5
;; QUESTION SECTION:
;baidu.com. IN A
;; ANSWER SECTION:
baidu.com. 600 IN A 123.125.114.144
baidu.com. 600 IN A 111.13.101.208
baidu.com. 600 IN A 220.181.57.217
baidu.com. 600 IN A 180.149.132.47
;; AUTHORITY SECTION:
baidu.com. 10940 IN NS ns2.baidu.com.
baidu.com. 10940 IN NS ns4.baidu.com.
baidu.com. 10940 IN NS dns.baidu.com.
baidu.com. 10940 IN NS ns3.baidu.com.
baidu.com. 10940 IN NS ns7.baidu.com.
;; ADDITIONAL SECTION:
dns.baidu.com. 168235 IN A 202.108.22.220
ns2.baidu.com. 172699 IN A 61.135.165.235
ns3.baidu.com. 13330 IN A 220.181.37.10
ns4.baidu.com. 11265 IN A 220.181.38.10
ns7.baidu.com. 6547 IN A 119.75.219.82
;; Query time: 2005 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 10 13:39:03 2015