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网络中指定的网卡接口。

相关推荐
yuweiade13 小时前
docker desktop安装redis
redis·docker·容器
IT成长史13 小时前
Windows D盘安装Docker Desktop全流程(避坑+ECR镜像推送实战)
java·docker
huabiangaozhi13 小时前
Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像
docker·容器·tomcat
cyber_两只龙宝13 小时前
【Docker】Dockerfile构建镜像实验全流程详解
linux·运维·docker·云原生
人间打气筒(Ada)14 小时前
「码动四季·开源同行」docker容器单机编排docker-compose
运维·docker·容器·docker-compose·容器编排·批量·docker compose
小学鸡!14 小时前
win10/win11下载安装Docker,Windows安装Docker Desktop 【保姆级教程】
windows·docker·容器
夜星辰202314 小时前
在 Ubuntu 里创建 Docker 容器,与在 Windows 上安装 VMware Workstation Pro 虚拟机的区别
windows·ubuntu·docker
谁在黄金彼岸14 小时前
MariaDB Docker容器权限配置问题分析与解决方案
后端·docker·容器
慢慢开始吧14 小时前
一套搞定!基于 Docker + Jenkins + Harbor 的国产多系统自动化编译流水线实战全纪录
docker·程序员
ywlovecjy15 小时前
macOs安装docker且在docker上部署nginx+php
nginx·macos·docker