Flink TaskManager无法连接到docker swarm任务

时间:2017-02-08 15:16:26

标签: apache-flink docker-swarm akka-cluster docker-swarm-mode

我无法让TaskManager与docker swarm堆栈上的JobManager进行通信。

我用于stack.yml的{​​{1}}文件的内容是:

docker stack deploy

Docker镜像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 是按照README @ https://github.com/apache/flink/tree/release-1.1.3-rc2/flink-contrib/docker-flink构建的图像的dockerhub推送。

网络affo/flink:1.1.3是一个可叠加的网络。

我尝试使用DNS解析来ping其他人的容器,一切正常。

但是没有任何TaskManager可以通过JobManager。

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

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

JM拥有VIP 10.0.42.7。 my-net设置为jobmanager.rpc.address,解析为10.0.42.7。

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

非常感谢!

更新

我添加jobmanager的输出:

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

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

再次感谢

更新

我最近设法仅在JobManager上将telnet: can't connect to remote host (10.0.42.7): Connection refused 更改为jobmanager.rpc.address,现在它正在有效地倾听:

0.0.0.0

我甚至可以从TaskManagers 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:* - nc

但是,现在的问题是(在JobManager上):

telnet

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

更新

我想我已经解决了这个问题。在github上打开了问题:https://github.com/docker/docker/issues/30874

1 个答案:

答案 0 :(得分:0)

如果您关注在Github上打开的问题,您可以理解真正的问题是群体本地网络VIP分配。我把它关了,现在一切正常。

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