3

请帮我解决这个问题,

swarm 模式下的覆盖网络允许跨节点容器能够像在同一网络上一样看到彼此。
那正确吗?

因此,如果我有以下设置:

  • 两个相似节点 M(管理者)和 W(工作者)的 swarm-mode 集群
  • 两个容器 CM 和 CW 分别运行在节点 M 和 W 上
  • 厘米depends_on: - CM:target
  • 两个容器都连接到覆盖网络 OVNET

ping target能从CM那里得到吗?如果不是,为什么?


Demo: docker stack deploy -c test.yml test 其中test.yml如下:

version: "3"
services:
  CM:
    image: alpine
    command: sh -c 'ping CW'
    depends_on:
      - CW
    networks:
      - OVNET
    deploy:
      placement:
        constraints:
          - node.role == manager
  CW:
    image: alpine
    command: sh -c 'ping localhost'
    networks:
      - OVNET
    deploy:
      placement:
        constraints:
          - node.role == worker
networks:
  OVNET:
    driver: overlay

提前感谢!

4

1 回答 1

3

是的,它可以按您的预期工作。首先创建网络,然后根据它们的约束放置容器。我希望 CM 的第一个实例可能会失败,因为 CW 需要时间来拉取图像,但之后会正常工作。同一覆盖网络上的容器可以通过内置 DNS 上的服务名称相互通信。

于 2017-04-09T15:14:44.547 回答