rancher 容器访问非集群节点的网络问题?

[list=1] [[i]]使用默认的service cluster ip 网段[/[/i]] [/list]2.启动一个demo,网段是cluster ip网段里面一个ip。 [list=1] [[i]]通过web访问这个容器,然后使用ping 访问非集群节点的其他机器。[/[/i]] [/list]问题:   容器网段是service cluster ip网段的,访问非集群节点的,全部是伪装成宿主机的ip出去的,这个在nat表中可以看到。 需求:     rancher里面在哪里设置可以取消掉 群集ip网段 masq功能,我这边需要docker0 上的网络,包含rancher 桥接在docker0上的网络,都走三层路由的形式和集群内和非集群内的节点进行通信
已邀请:

niusmallnan

赞同来自: Michael

rancher的CNI中有一个设置可以取消SNAT,比如compose文件 https://github.com/rancher/rancher-catalog/blob/v1.6-development/infra-templates/ipsec/16/docker-compose.yml.tpl cni_config:
'10-rancher.conf':
name: rancher-cni-network
type: rancher-bridge
bridge: $DOCKER_BRIDGE
bridgeSubnet: $SUBNET
logToFile: /var/log/rancher-cni.log
isDebugLevel: ${RANCHER_DEBUG}
isDefaultGateway: true
hostNat: true
 这里面的hostNat设置为false就可以取消默认的SNAT。因为这个参数默认是true,所以你要想修改,可以单独fork一个catalog,把这个参数变成catalog中的可变参数,这样你可以在UI中设置它。

BTW,rancher的ipsec/vxlan都是overlay网络,不做SNAT,你是出不去的。
如果你要需要无损的三层路由方式,你可以试一试Rancher的per-host-subnet网络模型(类似Flannel的hostgw),在catalog中就有。
至于是否满足你们的业务场景,你可以自行体验。
感谢回答,抽空试试

要回复问题请先登录注册