【发布时间】:2018-07-07 17:08:23
【问题描述】:
我正在为我的服务寻找一些监控和警报解决方案。我发现了以下不错的相关作品。
这两部作品都使用 dns 服务发现来监控服务的多个副本。
我试图重播这些工作,但我发现我只能获得单个后端容器 ip。
# dig A node-exporter
; <<>> DiG 9.10.4-P8 <<>> A node-exporter
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18749
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;node-exporter. IN A
;; ANSWER SECTION:
node-exporter. 600 IN A 10.0.0.42
;; Query time: 0 msec
;; SERVER: 127.0.0.11#53(127.0.0.11)
;; WHEN: Mon Jan 29 02:57:51 UTC 2018
;; MSG SIZE rcvd: 60
查看服务时发现node-exporter的端点模式是vip。
> docker inspect 242pn4obqsly
...
"Endpoint": {
"Spec": {
"Mode": "vip"
},
"VirtualIPs": [
{
"NetworkID": "61fn8hmgwg0n7rhg49ju2fdld",
"Addr": "10.0.0.3/24"
}
]
...
这意味着当与dns联系时,prometheus只能获得一个delegate service ip。然后内部 lbs 策略会将收入请求路由到不同的后端实例。
那么相关作品是如何成功的呢?
谢谢!
【问题讨论】:
-
我想我可以指定 dnsrr 端点模式来获得 client-dns 服务发现。但是我在相关作品中没有找到这个设置……
标签: docker dns docker-swarm prometheus service-discovery