0

Мне не удается заставить диспетчер задач взаимодействовать с 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

ответ

0

Если вы следуете проблеме, открытой на Github, вы можете понять, что настоящая проблема была связана с назначением роуминга в сети роя. Я выключил его, и теперь все работает.

Фактически, до сих пор нет возможности отключить его из файла компоновки, поэтому мне пришлось переключиться на сценарий развертывания, а не на автоматический docker stack deploy.

 Смежные вопросы

  • Нет связанных вопросов^_^