Мне не удается заставить диспетчер задач взаимодействовать с JobManager в стеке стаи докеров.Flink TaskManager не может подключиться к JobManager в задаче старта docker
Содержание 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
нажимного на dockerhub изображения, построенное после README @https://github.com/apache/flink/tree/release-1.1.3-rc2/flink-contrib/docker-flink.
Сеть my-net
- это оверлейная сеть.
Я попытался выполнить ping каждый контейнер из других с помощью разрешения 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.
Любая помощь или намек на то, где начать решение проблемы, будет оценено по достоинству.
Большое спасибо!
UPDATE
добавить выход 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.
Еще раз спасибо
UPDATE
Я недавно удалось изменить jobmanager.rpc.address
к 0.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:* -
Я могу даже nc
или telnet
из диспетчера задач.
Однако теперь проблема (на 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://[email protected]:6123/]] arriving at [akka.tcp://[email protected]:6123]
inbound addresses are [akka.tcp://[email protected]:6123]
Любая помощь будет оценили, спасибо!
UPDATE
Я думаю, что я выделил проблему.Проблема открыта на github: https://github.com/docker/docker/issues/30874