因为公司 k8s 容器集群的网络模式的问题,在 MacVlan 下,Pod 内会有两个网卡出现,Pod IP 是 eth0,MavVlan IP 是 eth1,然而 Dubbo 框架在选择网卡的时候会默认拿到 eth0,这样就会有一些网络问题,例如把 Pod IP 注册了,但是流量无法和集群外的网络互通。
走读了一下 Dubbo 的代码,发现 isPreferredNetworkInterface 这个函数的配置是可以帮助 Dubbo 获取期望的网卡的,具体就是给 Dubbo 启动的时候加上一个参数 dubbo.network.interface.preferred,就可以指定注册的网卡了。

在Kubernetes(k8s)环境中,使用MacVlan网络模式会导致Pod内有两个网卡,Dubbo默认选取eth0作为通信接口,造成网络问题。通过分析Dubbo源码,可以发现`isPreferredNetworkInterface`函数允许设置首选网络接口。通过在启动时添加参数`dubbo.network.interface.preferred`,可以指定使用eth1来解决PodIP与集群外通信的问题。
3103

被折叠的 条评论
为什么被折叠?



