首页 文章

堆栈服务在特定接口上公开端口?

提问于
浏览
0

我们在Digital Ocean上运行堆栈 . 为了提高安全性,docker swarm所有运行在Droplets上的专用网络(eth1)上 . 我们有一些管理服务,我们不希望在公共IP上公开,而是在私有IP上公开 .

是否可以在特定接口上公开端口?或者可以创建另一个只暴露私有IP端口的入口网络?

我们现在的解决方法是那些服务我们只是作为普通容器运行,并暴露私有IP地址上的端口 .

1 回答

  • 2

    使用覆盖网络驱动程序(使用入口网络)时,只有一个入口,在 docker swarm init/join 期间使用 --data-path-addr 定义 . 您可以使用Swarm "control plane" --advertise-addr 的专用网络,但's the only control you'具有 .

    如果您需要控制对特定登录组的访问权限/ IP 's, then I'建议在其前面放置代理并控制该方式 . Here's some nginx info on that . 您可以在Docker Flow Proxy或Traefik中进行设置 .

    您可以做的另一件事是设置服务约束,其中一组服务器用于公共访问,另一组服务器正在侦听专用IP并具有特定节点标签,因此您可以使用仅部署到专用/公共服务器的约束来部署服务 .

相关问题