Rancher容器接管主机IP

时间:2019-03-27 19:52:21

标签: docker networking kubernetes rancher

我的牧场主主机(中心)中有2个IP地址:1.1.1.12.2.2.2

1.1.1.1是我要用于访问rancher UI和SSH进入主机的IP地址。

我想使用2.2.2.2访问应用程序的容器。我有2个容器,一个nginx和一个ssh。我将容器配置为使用映射到80的主机端口2.2.2.2:80和使用22映射到主机端口2.2.2.2:22的容器。

我还更改了牧场服务器的默认运行命令,以监听IP 80的端口4431.1.1.1

如果我进入浏览器并访问1.1.1.1,则会看到牧场主符合预期;如果访问2.2.2.2,我将看到容器应用程序符合预期。

但是,如果我尝试访问1.1.1.1:22,我最终会连接到容器ssh,该容器应该只监听2.2.2.2:22

我在这里错过了什么吗?这是主机还是容器上的配置问题?容器可以访问它甚至不应该知道的东西吗?

更新

让我尝试澄清设置:

Rancher在具有2个IP地址的主机中运行。运行rancher时,我将执行以下命令,因此该命令将附加到第一个IP地址:

docker run -d --volumes-from rancher-data --restart=unless-stopped -p 1.1.1.1:80:80 -p 1.1.1.1:443:443 rancher/rancher
docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.7 --server https://rancher1.my.tld --token [token] --ca-checksum [checksum] --etcd --controlplane --worker

我在rancher UI中配置了4个容器,我想指向2.2.2.2:222.2.2.2:802.2.2.2:22222.2.2.2:8080

这些是应用程序的2个环境。 2280是LIVE环境的nginx和ssh容器(在它们之间共享数据量),而22228080则是相同的东西,它们分别是质量检查环境。我使用ssh容器通过共享数据卷将内容上传到nginx容器。

除了配置ssh机器以使用端口22时,当我尝试连接到主机ssh时,我已连接到容器ssh,这一配置没有任何问题。

更新2

以下是容器中端口映射设置的屏幕截图:https://snag.gy/idTjoV.jpg

已将容器端口22映射到IP 2.2.2.2:222

如果我将其设置为2.2.2.2:22,则用于主机的SSH将停止工作,并且将与容器建立ssh连接。

0 个答案:

没有答案