DolPhinScheduler在docker swarm环境下的启动:网卡问题

在Docker Swarm环境下部署DolphinScheduler时,可能会遇到Master节点与Worker节点之间无法通过RPC通信的问题。这通常是由于Master和Worker节点的IP地址与Swarm网络中的IP地址不一致导致的。

一、问题描述

在使用Docker Swarm启动DolphinScheduler集群时,Master节点与Worker节点之间的RPC通信失败。经过排查发现,Master节点和Worker节点注册到Zookeeper中的IP地址并非Swarm网络中的IP地址,而是宿主机的物理网卡IP地址。例如,Master节点的IP地址可能是192.168.56.10,而Worker节点的IP地址可能是192.168.56.9,这些IP地址与Swarm网络中的IP地址(如10.0.0.2)不匹配。

这种IP地址不一致的问题会导致Master节点无法正确找到Worker节点,从而无法正常分发任务。

二、问题分析

先查询zk集群节点的zk信息

进入zk当中

bash 复制代码
./zkCli.sh -server localhost:2181 

查询某一个节点的信息

bash 复制代码
ls /ds/nodes/master  
get /ds/nodes/master  

查询到zk的节点信息(192.168.56.10)跟docker swarm网络当中容器的节点信息(10.0.0.2)不一致

看DolphinScheduler代码,如何获取ip信息

查找到有一个getHost函数

进一步找到可以通过配置参数指定网卡

三、解决方案

指定Swarm网络的网卡接口

启动DolphinScheduler时,在环境变量当中设置如下指定网卡的值

makefile 复制代码
DOLPHIN_SCHEDULER_NETWORK_INTERFACE_PREFERRED: eth0

这样可以确保容器绑定到Swarm网络中指定的网卡接口。

相关推荐
金刚猿9 小时前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong9 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿10 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
70asunflower13 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
春日见14 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe214 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
星火s漫天15 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
MonkeyKing_sunyuhua17 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka
醇氧18 小时前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
技术路上的探险家18 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker