Docker Swarm,如何从外部客户端访问覆盖网络上的私有服务

Docker Swarm,如何从外部客户端访问覆盖网络上的私有服务

我正在构建一个基于 Docker Swarm 的微服务系统。其中一些服务必须仅供公司内部使用,例如管理仪表板、数据库等。服务通过 Docker 的覆盖网络互连,并且只有公共端口发布到互联网。

我想要做的是创建一个简单的admin后端覆盖网络,任何管理服务都可以连接到该网络,并在其上添加一个入口 VPN 网关,任何来自互联网的授权客户端都可以连接并访问私有内部服务,就像客户端直接连接到同一个覆盖网络一样。

我原本想在网上安装一个带有容器的 OpenVPN 服务器,我读了一些资料,但找不到关于这种方式的明确信息。我发现有人在谈论配置路由表的问题,以及配置 DNS 以使用 docker 的 DNS,以便能够解析服务的名称而不是机器的 IP。

我仍在学习 Docker,我想问的是在这些情况下最好的模式是什么。如何将覆盖网络的访问权限限制为仅授权的外部客户端,并使其能够访问同一网络上的服务?

相关内容