endpoint_mode

为外部客户端连接到swarm提供一个服务发现方法。

  • endpoint_mode: vip - Docker 为该服务分配了虚拟 IP(VIP),作为客户端在网络上获得服务的前端。Docker在客户端和可用worker节点之间路由服务请求,而不让客户端知道在服务中有多少节点参与或节点的IP地址或端口是多少。(这是默认值)。

  • endpoint_mode: dnsrr - DNS轮询(DNSRR)服务发现不使用单个虚拟 IP。Docker 为该服务设置DNS 条目,以便对一个服务名称的DNS查询返回一个IP地址列表,客户端直接连接到其中之一。DNS轮询在想要使用自己的负载均衡器或混合了Windows和Linux应用程序的情况下很有用。

version: "3.9"

services:
  wordpress:
    image: wordpress
    ports:
      - "8080:80"
    networks:
      - overlay
    deploy:
      mode: replicated
      replicas: 2
      endpoint_mode: vip

  mysql:
    image: mysql
    volumes:
       - db-data:/var/lib/mysql/data
    networks:
       - overlay
    deploy:
      mode: replicated
      replicas: 2
      endpoint_mode: dnsrr

volumes:
  db-data:

networks:
  overlay:

endpoint也可以作为swarm模式的CLI命令的flag参数。

Last updated