ygk*_*ygk 10 vmware networking docker docker-swarm
我们在 docker-swarm 中遇到网络问题。问题如下;
我应该去哪里检查,有什么建议吗?
server-1:~$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 08:01:32 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 08:01:32 2017
OS/Arch: linux/amd64
Experimental: true
Run Code Online (Sandbox Code Playgroud)
ps:我检查了这篇文章,但我有最新版本的 docker / docker-swarm,所以问题应该得到解决。
ps-2:类似的问题;https://github.com/docker/swarm/issues/2687
小智 17
“VTEP 端口已保留或限制供 VMware 使用,任何虚拟机都不能将此端口用于其他目的或任何其他应用程序。”
但是我们可以将 docker swarm data-path-port (使用默认端口号 4789)更改为另一个:
docker swarm init --data-path-port=7789
Run Code Online (Sandbox Code Playgroud)
小智 5
出于好奇,在您的 VMware 环境中,是否部署了 NSX?我可能有一个答案,但它仅适用于在环境中部署 NSX 的情况。
如果目标端口与为 VXLAN VTEP 通信配置的端口相同,ESXi 显然会丢弃来自虚拟机的OUTBOUND数据包。
NSX 使用端口4789/udp进行 VXLAN 的 VTEP 通信(默认情况下,自 6.2.3 起;在此之前,该端口为8472/udp)。(如果虚拟机位于同一主机上,则流量不会被丢弃,因为虽然它可能是出站流量,但它不会离开主机,也不会到达要丢弃的 VMKernel 内的同一阶段。)
KB2079386中的措辞有点不对劲。它指出:
VXLAN 端口 8472 保留或限制供 VMware 使用,任何虚拟机都不能将此端口用于其他目的或任何其他应用程序。
但是,它应该写成:
VTEP 端口保留或限制供 VMware 使用,任何虚拟机都不能将此端口用于其他目的或任何其他应用程序。
如果您使用 NSX,您可以尝试更改用于 VXLAN VTEP 的端口,但如果您要充分利用硬件 VTEP,则需要端口4789/udp 。
(我不能完全相信这一点。我在解决类似问题时偶然发现这篇博客文章讨论了类似的行为。)
| 归档时间: |
|
| 查看次数: |
8185 次 |
| 最近记录: |