全局服务的入口流量是否总是在该节点本地处理?

全局服务的入口流量是否总是在该节点本地处理?

假设您在模式下运行在端口 80 上公开的服务global,那么任何给定节点/主机的端口 80 上的入口流量是否会由该节点上运行的实例在本地处理?

另一种方法是,Swarm 将流量负载平衡到其中一个正在运行的实例,而不管它在哪个节点上运行。

答案1

经过我自己的一些实验后,似乎可以通过以下配置来实现。

version: '3.2'

services:
  traefik:
    image: [image]
    ports:
      - target: 80
        published: 80
        protocol: tcp
        mode: host
    deploy:
      mode: global
      endpoint_mode: dnsrr

重要部分是:

  1. 必须将版本设置为才能支持3.2该部分格式。ports
  2. 对于每个暴露的端口,设置modehost
  3. deploy部分中,设置modeglobalendpoint_modednsrr

这将直接在集群中每个节点的 80 端口上公开服务,并且流量将由该服务直接处理。

相关内容