2.1 KiB
2.1 KiB
Docker service discover
Odpalenie tego na maszynie developerskiej powoduje, że wszystkie usługi dostają swoją nazwę domenową. Do poprawnej pracy wymaga (najłatwiej) skonfigurowanego lokalnego serwera DNS. Lokalnie fajnie działa dnsmasq z odpowiednią konfiguracją:
W pliku /etc/dnsmasq.d/10-consul
umieszczamy:
server=/consul/127.0.0.1#8600
Dzięki takiej konfiguracji demon docker'a korzystający z lokalnego DNS'a będzie miał dostęp do domen tworzonych przez consul'a
Przykład:
dig consul.service.dev.consul SRV
; <<>> DiG 9.12.1-P2 <<>> consul.service.dev.consul SRV
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23082
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 9
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;consul.service.dev.consul. IN SRV
;; ANSWER SECTION:
consul.service.dev.consul. 0 IN SRV 1 1 8300 ac190003.addr.dev.consul.
consul.service.dev.consul. 0 IN SRV 1 1 8300 b39af5152084.node.dev.consul.
consul.service.dev.consul. 0 IN SRV 1 1 8600 ac190003.addr.dev.consul.
consul.service.dev.consul. 0 IN SRV 1 1 8400 ac190003.addr.dev.consul.
consul.service.dev.consul. 0 IN SRV 1 1 8302 ac190003.addr.dev.consul.
consul.service.dev.consul. 0 IN SRV 1 1 8301 ac190003.addr.dev.consul.
consul.service.dev.consul. 0 IN SRV 1 1 8500 ac190003.addr.dev.consul.
;; ADDITIONAL SECTION:
ac190003.addr.dev.consul. 0 IN A 172.25.0.3
b39af5152084.node.dev.consul. 0 IN A 127.0.0.1
b39af5152084.node.dev.consul. 0 IN TXT "consul-network-segment="
ac190003.addr.dev.consul. 0 IN A 172.25.0.3
ac190003.addr.dev.consul. 0 IN A 172.25.0.3
ac190003.addr.dev.consul. 0 IN A 172.25.0.3
ac190003.addr.dev.consul. 0 IN A 172.25.0.3
ac190003.addr.dev.consul. 0 IN A 172.25.0.3
;; Query time: 9 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: pią cze 08 16:59:32 CEST 2018
;; MSG SIZE rcvd: 514