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

问题

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

可能的原因

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

bash 复制代码
cat /etc/hosts
ifconfig


推测 在k8s的host网络模式下,duboo3会默认获取网卡信息数组第一位的IP地址作为注册地址

仅为推测,并无实际依据

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

解决方式

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

bash 复制代码
-Ddubbo.protocol.port=-1 
-Ddubbo.network.interface.ignored=^((?!eth).)+

强制要求dubbo注册时获取eth0的IP地址,即Linux 中的第一个以太网接口,也就是宿主机IP。

在 Linux 操作系统中,eth0 是一个网络接口的命名约定,代表第一个以太网接口。在早期版本的 Linux 中,以太网接口的命名约定是以 "eth" 开头,后面跟着数字来表示不同的接口。

现在,随着 Linux 内核和网络管理的发展,网络接口的命名规则已经发生了变化。根据不同的 Linux 发行版和网络配置工具,以太网接口的命名可能会采用其他的命名方式,比如 enp0s1、ens33 等。这些新的命名方式通常基于设备的物理位置或固定的标识符。

总之,eth0 是指 Linux 中的第一个以太网接口,在网络配置和管理中起到标识和区分不同接口的作用。

相关推荐
HPYON8 小时前
【docker】CentOS安装docker失败,一直提示yum没有docker仓库
docker·容器·centos
ldj20209 小时前
docker 容器打包备份与镜像迭代更新
docker·容器
fandroid9 小时前
树莓派通过docker安装kodbox可道云
运维·docker·容器
MZWeiei11 小时前
docker save/load VS docker export/import
docker·容器
❀͜͡傀儡师12 小时前
Docker安装SQL Server并使用Navicat远程连接
运维·docker·容器
yewq-cn15 小时前
自动更新 Docker 镜像
运维·docker·容器
我还为发觉16 小时前
Docker在系统运维中的应用与实现原理
运维·docker·容器
特立独行的猫a17 小时前
使用Docker/Docker Compose方式安装部署PostgreSQL指南
docker·postgresql·容器
深盾科技18 小时前
Docker 常用命令速查表
运维·docker·容器
H²D18 小时前
真!docker离线部署GLPI资产管理系统
docker·容器·webview