Dubbo3在k8s下网卡地址注册时引发的问题

问题

在k8s host网络模式下,dubbo3在注册zk时,偶现注册地址IP来回变化的情况,有可能获取的是宿主机IP,有可能获取的是Docker的虚拟IP,host网络模式正常情况下,应该是获取宿主机IP,而不应该获取docker虚拟IP。

可能的原因

登录宿主机,查看host信息,发现dubbo3在zk上注册的IP地址与docker bridge的虚IP一致:

cat /etc/hosts
ifconfig

hosts信息
推测在k8s的host网络模式下,duboo3会默认获取网卡信息数组第一位的IP地址作为注册地址
仅为推测,并无实际依据
org\apache\dubbo\common\utils\NetUtils.class

在dubbo的官方网站上找到一篇博文讲解dubbo获取网卡地址的内容
研究 Dubbo 网卡地址注册时的一点思考

解决方式

Java服务启动参数中,加入参数:

-Ddubbo.protocol.port=-1 
-Ddubbo.network.interface.ignored=^((?!eth).)+

强制要求dubbo注册时获取eth0的IP地址,即Linux 中的第一个以太网接口,也就是宿主机IP。
在这里插入图片描述
在这里插入图片描述

在 Linux 操作系统中,eth0 是一个网络接口的命名约定,代表第一个以太网接口。在早期版本的 Linux 中,以太网接口的命名约定是以 “eth” 开头,后面跟着数字来表示不同的接口。
现在,随着 Linux 内核和网络管理的发展,网络接口的命名规则已经发生了变化。根据不同的 Linux 发行版和网络配置工具,以太网接口的命名可能会采用其他的命名方式,比如 enp0s1、ens33 等。这些新的命名方式通常基于设备的物理位置或固定的标识符。
总之,eth0 是指 Linux 中的第一个以太网接口,在网络配置和管理中起到标识和区分不同接口的作用。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值