Docker SWARM 内置的 DNS 服务器可以很好地完成 SWARM 内部的通信。但 SWARM 外部的客户端似乎无法发现 SWARM 内部部署的服务,除非手动通知外界。
是否可以利用核心DNS就像 Kubernetes 使用它来实现这个目的一样?
我说的不是旧的容器端口绑定到主机 IP 的情况。这种情况是关于容器本身可以有可路由的 IP 地址。
答案1
您可以使用 CoreDNS 和 Traefik 来实现这一点。Traefik 将充当负载均衡器,并允许您根据容器名称路由到容器。CoreDNS 将获取 *.yourdomain.com 并将其路由到 traefik。
这里有一个很好的例子: https://dklesev.github.io/devenv/