无法使用连接到同一VCN的Oracle云虚拟机加入docker群



我正在尝试使用Oracle云中的两个计算实例作为小型Docker Swarm中的节点(使用Oracle提供的Ubuntu 20.04作为基本系统(。问题是,我似乎无法将两者联系起来。Node1和Node2分别具有IP 10.0.0.2和10.0.0.3。显然,它们连接到同一个虚拟云网络,例如使用arp -a显示另一个节点的IP(无论我执行哪个命令(,因此它们确实在同一个网络上。

问题是,即使arp看到了另一个节点,ping也不起作用,我得到了100%的包丢失。这本身不会太困扰我,但在Node1和docker swarm join <token> 10.0.0.2:2377上发出docker swarm init后,我会出现超时错误,并且没有建立连接。

我试图通过编辑/etc/iptables/rules.v4打开iptables中所有需要的端口(TCP 2377、TCP UDP 7946、UDP 4789(,但没有成功。基本上,这就是我附加到INPUT部分的内容:

-A INPUT -p tcp -m tcp --dport 2377 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 7946 -j ACCEPT
-A INPUT -p udp -m udp --dport 7946 -j ACCEPT
-A INPUT -p udp -m udp --dport 4789 -j ACCEPT

尽管如此,没有运气。我也重新启动了系统,但仍然没有什么乐趣。就我而言,我已经做了一切必要的事情来加入一个群体,但由于某种原因,它不起作用。有趣的是,在非VM Gentoo安装上,iptables规则集还包含以下内容:

-A INPUT -p tcp -m tcp --dport 2376 -j ACCEPT

官方文档中没有提到,管理器生成的加入令牌不包含此端口。

这个丢失的条目会有问题吗?或者在Oracle云网络设置中是否缺少某种设置(如客户端隔离等(?如果这确实是一个网络问题,有人能就如何调试提出一些建议吗?

提前谢谢。

我的怀疑得到了证实:在Oracle云中,客户端之间的所有流量默认都被阻止。解决方案是将上述端口的规则添加到虚拟机连接到的VCN的安全列表中。之后,一切都按预期工作。

最新更新