如何在docker swarm中同时允许主机联网和入口?

mor*_*tee 6 docker-swarm docker-ingress

我有一个小型计算机网络,捆绑到一个 Docker 群中。我正在运行一个需要主机网络的服务,当它在专用节点上运行时就很好了。

但我想让它在任何节点上运行 - 同时保持通过连接到固定主机名/IP 地址来访问其 Web UI 的能力,无论服务实际运行在哪个节点上。

这通常由 docker 的入口网络处理,它允许我连接到任何节点 IP 地址上的已发布端口,并将连接路由到正确的节点。但是,显然这不适用于主机网络,如果我明确指定入口网络,它会被拒绝。

那么,有没有一种方法既可以拥有主机网络,又可以保留入口路由?或者让我连接到服务而不用担心它在任何给定时刻运行在哪个节点上的推荐方法是什么?

编辑:

我的堆栈文件如下:

version: '3'
services:
  app:
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      - ...
    privileged: true
    deploy:
      replicas: 1
      restart_policy:
        condition: any
      placement:
        constraints:
          - node.hostname==nas
    networks:
      - host

networks:
  host:
    external: true
Run Code Online (Sandbox Code Playgroud)