[英]Consul dns round robin and ping
我设置了包含3个服务器的测试集群。 Consul,dnsmask和NetworkManager安装在CentOS 7下的所有计算机上。
我想测试简单的循环程序:
预期 :ping consul.service.consul必须将icmp请求发送到三个服务器之一。
实际 :ping总是将请求发送到一个IP地址(10.82.5.6)
但是ip命令在dig命令的答案部分中已更改:
[vagrant@localhost ~]$ dig consul.service.consul
; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.1 <<>> consul.service.consul
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23466
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;consul.service.consul. IN A
;; ANSWER SECTION:
consul.service.consul. 0 IN A 10.82.5.5
consul.service.consul. 0 IN A 10.82.5.4
consul.service.consul. 0 IN A 10.82.5.6
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 13 13:40:20 UTC 2017
;; MSG SIZE rcvd: 98
如果我重新启动10.82.5.6节点,则dig返回2个节点,并且ping开始正常工作-循环轮询。 但是当我重新启动节点10.82.5.6时,只有该节点再次响应ping命令
根据https://www.consul.io/docs/agent/dns.html,DNS接口会将返回的节点随机化,因此永远不会循环使用。
还有DNS缓存https://www.consul.io/docs/guides/dns-cache.html ,默认TTL是0,但您可能会有一些不同,并且/或者结果缓存在其他地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.