coredns etcd
这两个软件之前见到都是在k8s容器管控里面见到。实际用非容器测试了才发现,果然是简洁明了,自身就一个可执行文件,太适合打包进微服务了。coredns 官网下载编译好的二进制,发现就一个可执行文件。运行也很简单,不带任何参数直接运行就前台运行了实际运行还是需要配置conf文件(配置文件需要和coredns运行时的目录在一个目录如果放到rc.local里面 需要写成/root/dns/coredns
这两个软件之前见到都是在k8s容器管控里面见到。
实际用非容器测试了才发现,果然是简洁明了,自身就一个可执行文件,太适合打包进微服务了。
coredns 官网下载编译好的二进制,发现就一个可执行文件。运行也很简单,不带任何参数直接运行就前台运行了
实际运行还是需要配置conf文件(配置文件需要和coredns运行时的目录在一个目录如果放到rc.local里面 需要写成/root/dns/coredns -conf /root/dns/Corefile 这样,否则默认在/目录下去找Corefile文件去了),比如
.:53 {
etcd {
path /skydns
endpoint http://localhost:2379
fallthrough
}
prometheus
cache 160
loadbalance
forward . 114.114.114.114
log
}
这个是网上白嫖的示例。
示例由服务器块组成,服务器块以zone开头,后面可接监听端口号比如 okd.example.com:5555 {}
表示okd.example.com这个域的解析,在5555端口上监听,并由{}里面的配置完成解析。
.:53 表示根以下所有域的解析(点在dns里面表示根域)在53端口监听,里面的etcd表示首先由etcd来解析, forward表示etcd解析不了的(有fallthrough),转发到公网去。
配置文件也很简单,coredns默认编译进了很多插件,解析从前到后,如果第一部分解析不了,配置了fallthrough,那么就以此让后面的插件来解析
说到etcd,又引出另一个微服务里面的组件了。etcd也超级简单,官网下载的编译好的二进制包解压得到etcd etcdctl etcdutl三个可执行文件,起服务直接运行etcd就可以,他自动监听本地2379端口。然后用etcdctl来进行存取。
alias etcdctlv3='ETCDCTL_API=3 etcdctl'
etcdctlv3 put /skydns/com/example/okd/shareservice '{"host":"192.168.5.175", "ttl":60}'
etcdctlv3 get /skydns/com/example/okd/shareservice
遍历所有键值
etcdctlv3 get / --prefix
增加DNS反解
etcdctlv3 put /skydns/arpa/in-addr/192/168/5/180 '{"host":"www.example.com", "ttl":60}'
挺有意思,本来反解就是反着写的,结果负负得正了,正着写了,哈哈
手工操作后发现这个就是一个键-值存取软件。你存入一对键-值,然后get键,他返回值给你。这真是太简单了,就干这一件事,但这正是微服务的思想所在,每一个组件就干一件事。这样方便进行横向扩展以及容器化部署和运维。
这样通过etcd的接口可以动态修改键值,也就变相的动态更新DNS的记录了,因为coredns调用etcd插件来解析。
更多推荐
所有评论(0)