我无法设法使TaskManager与码头群堆栈上的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: trueDocker affo/flink:1.1.3是对构建在README @ https://github.com/apache/flink/tree/release-1.1.3-rc2/flink-contrib/docker-flink之后的映像的docker集线器的推动。
网络my-net是一种覆盖可连接的网络。
我试图使用DNS解析从其他容器中选择每个容器,并且一切都正常工作。
然而,没有一个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那里成功地将jobmanager.rpc.address更改为0.0.0.0,现在它正在有效地侦听:
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或telnet从TaskManagers。
但是,现在的问题是(在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上发行
发布于 2017-02-10 11:56:47
如果您遵循在Github上打开的问题,您可以理解真正的问题在于群集本地网络VIP的分配。我把它关掉了现在一切都正常了。
实际上,到目前为止还没有办法从撰写文件中关闭它,因此,我不得不切换到一个脚本部署,而不是一个自动的docker stack deploy。
https://stackoverflow.com/questions/42116934
复制相似问题