Windows容器是否支持多节点群

问题描述 投票:3回答:1

通过关注本文https://docs.docker.com/ee/docker-ee/windows/docker-ee/,我已在Windows Server 2016上手动设置了泊坞窗

我有两台共享同一网络的Windows Server 2016 hyper-v机器,我添加了防火墙规则,以允许彼此形成网络连接。

第一台机器拥有私有IP 192.168.192.254,另一台机器拥有私有IP 192.168.192.242,它们可以相互ping通。

我尝试在第一台计算机上初始化群集,并使用以下命令docker swarm init --advertise-addr 192.168.192.245:2377 --listen-addr 192.168.192.245:2377,但出现以下错误*

来自守护程序的错误响应:管理器已停止:无法监听远程API地址:监听tcp 192.168.192.245:2377:绑定:请求的地址在其上下文中无效。

*我执行了以下命令,然后

docker network inspect nat

以下是结果enter image description here

好像docker有其自己的接口,并且其网络IP与hyper-v默认开关不同!这意味着两台机器上的两个泊坞窗都不知道如何相互通信,如果我的理解正确,那么在这种情况下如何构建多节点集群?

我尝试做并失败的另一件事是初始化群集并在docker窗口范围内使用了IP地址,但是我遇到了同样的问题enter image description here

再次编辑:

现在,它可以使用此IP:Port 192.168.192.243:2377并能够将第一个Hyper-v VM添加为管理器节点,但是如您所见,另一台计算机无法加入一群。我注意到,当我添加--listen-addr 192.168.192.243:2377时,会出现与上面相同的错误。

我也在两台计算机上都禁用了防火墙,但是什么也没用

enter image description here

docker windows-server-2016 swarm docker-network
1个回答
0
投票

您需要使用主机的IP地址之一作为listen-addr,因为顾名思义,它将尝试监听该IP地址。

还有advertise-addr,这也是到其他节点的网络地址广告(它们将使用该地址连接到群集)。

[在大多数设置中,两者将是相同的,但是在某些情况下它们是不同的(例如,具有multiple network cards的主机可能只希望群在single network中可访问,或者通过VPN互连的主机可能希望它们只能通过VPN interface进行通信)。从理论上讲,您可以在NAT接口后有一个群集管理器,在这种情况下,advertise-addr将是NAT设备的(我只是在推测NAT的情况-我没有尝试过)。

无论如何,在您的情况下都可以使用此初始化命令:docker swarm init --advertise-addr 192.168.192.242

© www.soinside.com 2019 - 2024. All rights reserved.