gpt4 book ai didi

apache-flink - Flink TaskManager 无法连接到 docker swarm 任务中的 JobManager

转载 作者:行者123 更新时间:2023-12-03 19:39:16 26 4
gpt4 key购买 nike

我无法让 TaskManager 与 docker swarm 堆栈上的 JobManager 进行通信。
stack.yml的内容我使用的文件 docker stack deploy是:

version: "3"
services:
jobmanager:
image: affo/flink:1.1.3
ports:
- "48081:8081"
command: jobmanager
networks:
- my-net
deploy:
mode: replicated
replicas: 1
restart_policy:
condition: none
placement:
constraints:
- node.role == manager

taskmanager:
image: affo/flink:1.1.3
depends_on:
- jobmanager
command: taskmanager
networks:
- my-net
deploy:
mode: replicated
replicas: 4
restart_policy:
condition: none
placement:
constraints:
- node.role != manager

networks:
my-net:
external: true

Docker 镜像 affo/flink:1.1.3是在自述文件@ https://github.com/apache/flink/tree/release-1.1.3-rc2/flink-contrib/docker-flink 之后构建的图像的 dockerhub 上的插入.

网络 my-net是一个覆盖附加网络。

我尝试使用 DNS 解析从其他人那里 ping 每个容器,并且一切正常。

然而,没有 TaskManager 可以通过 JobManager。

我报告了 JobManager 日志: http://pastebin.com/Ai5s4Xvr

以及一个 TaskManager 的日志: http://pastebin.com/ty5pZhSp

JM 拥有 VIP 10.0.42.7。和 jobmanager.rpc.address设置为 jobmanager解析为 10.0.42.7。

任何有关从哪里开始解决问题的帮助或提示将不胜感激。

非常感谢!

更新

我添加 docker exec <jobmanager> netstat -tulpn 的输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.11:40762 0.0.0.0:* LISTEN -
tcp 0 0 ::ffff:10.0.42.7:6123 :::* LISTEN 218/java
tcp 0 0 :::8081 :::* LISTEN 218/java
tcp 0 0 :::34963 :::* LISTEN 218/java
udp 0 0 127.0.0.11:57000 0.0.0.0:* -

docker exec <a_taskmanager> telnet jobmanager 6123 :
telnet: can't connect to remote host (10.0.42.7): Connection refused

我还在 github 上放了一个可能相关问题的链接: https://github.com/docker/docker/issues/28795 .

再次感谢

更新

我最近设法改变了 jobmanager.rpc.address0.0.0.0仅在 JobManager 的,现在它正在有效地监听:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.11:56218 0.0.0.0:* LISTEN -
tcp 0 0 :::6123 :::* LISTEN 218/java
tcp 0 0 :::8081 :::* LISTEN 218/java
tcp 0 0 :::55231 :::* LISTEN 218/java
udp 0 0 127.0.0.11:47549 0.0.0.0:* -

我什至可以 nctelnet来自任务管理器。

但是,现在的问题是(在 JobManager 上):
2017-02-09 10:31:20,794 ERROR akka.remote.EndpointWriter                
- dropping message [class akka.actor.ActorSelectionMessage] for non-local recipient
[Actor[akka.tcp://flink@10.0.42.7:6123/]] arriving at [akka.tcp://flink@10.0.42.7:6123]
inbound addresses are [akka.tcp://flink@0.0.0.0:6123]

任何帮助将不胜感激,谢谢!

更新

我想我隔离了这个问题。在 github 上打开问题: https://github.com/docker/docker/issues/30874

最佳答案

如果你关注 Github 上的 issue,你就会明白真正的问题出在 swarm native 网络 VIP 分配上。我把它关掉了,现在一切正常。

实际上,到目前为止还没有办法从撰写文件中关闭它,因此,我不得不切换到脚本部署而不是自动 docker stack deploy .

关于apache-flink - Flink TaskManager 无法连接到 docker swarm 任务中的 JobManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42116934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com