0

私は、kafka プロデューサーと別の kafka コンシューマーで構成されるアプリケーションを持っています。マルチホスト ネットワークを有効にして、AWS の Docker swarm にデプロイしようとしています。Kafka コンテナーは、次のdocker-compose.ymlファイルによって作成されます。

kafka:
  image: spotify/kafka
  environment:
    ADVERTISED_PORT: 9092
  ports:
    - "2181:2181"
    - "9092:9092"

これは、さまざまなコンポーネントのコンテナーを実行する方法です。

> docker-compose -f helloworld_kafka.yml --x-networking up -d
Creating network "helloworld"
...
> docker run -d --name helloworld_producer_1 --net helloworld -it elsoufy/myimage ./myexec -role producer -queue helloworld_kafka_1:9092
> docker run -d --name helloworld_consumer_1 --net helloworld -it elsoufy/myimage ./myexec -role consumer -queue helloworld_kafka_1:9092

のを確認する/etc/hostsと、とhelloworld_kafka_1の両方のエントリが見つかりました。helloworld_server_1helloworld_consumer_1

10.0.0.2    kafka_container_id
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.0.0.3    helloworld_server_1
10.0.0.3    helloworld_server_1.helloworld
10.0.0.4    helloworld_consumer_1
10.0.0.4    helloworld_consumer_1.helloworld

しかし、後者のログを確認すると、kafka への接続に失敗していることに気付きました。次のように表示されます。

> docker logs consumer_container_id
2015/11/27 16:05:52 Kafka brokers: helloworld_kafka_1:9092
2015/11/27 16:05:52 Failed to start consuming dial tcp: lookup kafka_container_id on 10.10.0.2:53: no such host

10.10.0.2コンテナが名前を解決するために使用するDNS (ポート) はいつで、53到達できないようです。ノードのネットワークを調べると、このアドレスが見つからず、helloworldオーバーレイ ネットワークの範囲内にありません。この DNS を到達可能にするにはどうすればよいですか? どんな提案でも大歓迎です。

4

0 に答える 0