godns 集成coredns 的demo
以下是一个简单的集成coredns,主要是一个集成方案,测试下功能
环境准备
- docker-compose 文件
version: "3"
services:
redis:
image: redis
ports:
- "6379:6379"
networks:
service1_net:
ipv4_address: 192.168.1.2
joke:
image: dalongrong/godns:joke
build:
context: ./
dockerfile: ./Dockerfile-joke
networks:
service1_net:
ipv4_address: 192.168.1.3
ports:
- "1223:1223"
godns:
image: dalongrong/godns
build:
context: ./
dockerfile: ./Dockerfile-godns
networks:
service1_net:
ipv4_address: 192.168.1.4
coredns:
image: coredns/coredns:1.7.0
networks:
service1_net:
ipv4_address: 192.168.1.5
volumes:
- "./Corefile:/opt/Corefile"
command: -conf /opt/Corefile
ports:
- "53:53/udp"
- "53:53/tcp"
networks:
service1_net:
ipam:
driver: default
config:
- subnet: 192.168.1.0/16
- 说明
详细配置,参考https://github.com/rongfengliang/godns-joke-learning/tree/coredns,主要说明关于coredns的配置
coredns 配置dalongrong.com zone的解析转发到godns 服务(可以基于ui管理),默认的解析可以走公共的保证服务都是可用的
主要是对于
dalongrong.com:53 {
log
health
cache 30
forward . 192.168.1.4
}
.:53 {
log
health
cache 30
loadbalance round_robin
forward . 8.8.8.8 8.8.4.4 114.114.114.114
}
- 启动
docker-compose up -d
- redis key 添加
默认的hash key
hset godns:hosts dalongrong.com 192.168.0.109
测试试用
- uii
- 添加解析
- 解析测试
dig baidu
dig @127.0.0.1 baidu.com
dalongrong.com
说明
以上是一个简单的集成试用,实际上我们还是可以做好多扩展的
参考资料
https://github.com/kenshinx/godns
https://github.com/coredns/coredns
https://github.com/rongfengliang/godns-joke-learning/tree/coredns