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