首先:
我在docker swarm方面经验不佳(我是说我接触了生产环境)。我读了很多关于它的文章,并且我知道诸如veth
,overlay
,labels-pinning
,vtep
,bridge
之类的概念。我也知道docker swarm
使用一些分布式键值存储来处理集群的管理。
但是,有一些我不理解的地方:服务混乱/ DNS /解析服务名称。
它如何工作?该DNS服务器放在哪里?谁在乎解析服务名称?
是否可以读取分布式键值存储的内容?
答案 0 :(得分:0)
它如何工作?该DNS服务器放在哪里?谁在乎解析服务名称?
它已嵌入docker守护程序本身。作为用户定义网络一部分的每个容器,都是对127.0.0.11
的名称解析请求。
https://docs.docker.com/v17.09/engine/userguide/networking/configure-dns/
是否可以读取分布式键值存储的内容?
Docker正在使用libkv。但是我不确定是否可以绕过docker守护程序并访问它。
https://github.com/docker/libkv
答案 1 :(得分:0)
Docker Swarm覆盖网络中的DNS就像docker-compose网桥网络一样工作。服务通过服务名称在同一网络内解析。诸如Swarm VIP和Routing Mesh之类的其他东西使整个解决方案略有不同,但不会直接影响DNS解析。
并不是很容易阅读Swarm筏日志,但是它不仅仅是您在Swarm中创建的服务和网络的服务定义。我从来不需要直接在生产系统中查看它。
前Docker工程师Jerome Petazzoni和AJ Bowen的Here's a 3.5 training video on all things Swarm(包括许多网络详细信息)
此外,Laura Frank has some details from last years DockerCon介绍了筏板日志和共识的工作原理,如果您想深入了解,可能会指向一些工具。