0

Je n'arrive pas à faire en sorte que TaskManager communique avec le JobManager d'une pile d'essaims de dockers.Flink TaskManager ne peut pas se connecter à JobManager dans la tâche swarmer

Le contenu du fichier stack.yml que j'utilise pour docker stack deploy est:

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 

l'image Docker affo/flink:1.1.3 est un coup de pouce sur dockerhub de l'image construite suivant le README @https://github.com/apache/flink/tree/release-1.1.3-rc2/flink-contrib/docker-flink.

Le réseau my-net est un réseau pouvant être connecté en superposition.

J'ai essayé de faire un ping sur chaque conteneur des autres en utilisant la résolution DNS et tout fonctionne correctement.

Toutefois, TaskManager ne peut pas accéder au JobManager.

je signaler le journal de JobManager: http://pastebin.com/Ai5s4Xvr

Et le journal d'un TaskManager: http://pastebin.com/ty5pZhSp

JM a VIP 10.0.42.7. Et jobmanager.rpc.address est défini sur jobmanager qui se résout à 10.0.42.7.

Nous vous saurions gré de commencer ou de résoudre ce problème.

Merci beaucoup!

MISE À JOUR

ajouter la sortie de 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:*       - 

Et docker exec <a_taskmanager> telnet jobmanager 6123:

telnet: can't connect to remote host (10.0.42.7): Connection refused 

J'ai aussi mis un lien vers une question peut-être liée à github: https://github.com/docker/docker/issues/28795.

Merci encore

MISE À JOUR

J'ai récemment réussi à changer le jobmanager.rpc.address à 0.0.0.0 que chez JobManager et il est maintenant efficacement l'écoute:

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:*       - 

Je peux même nc ou telnet à partir de TaskManagers.

Cependant, maintenant le problème est (sur le 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] 

Toute aide serait appréciée, merci!

MISE À JOUR

Je pense que j'isolé le problème.Problème ouvert sur github: https://github.com/docker/docker/issues/30874

Répondre

0

Si vous suivez le problème ouvert sur Github, vous pouvez comprendre que le vrai problème était dans l'assignation VIP de mise en réseau native swarm. Je l'ai éteint et tout fonctionne maintenant.

En fait, il n'y a aucun moyen jusqu'à présent de le désactiver à partir du fichier de composition, donc, j'ai dû passer à un déploiement par script plutôt que d'un docker stack deploy automatique.