Docker化的领事,Zookeeper和Amazon-ECS中的Kafka

我试图将一个dockerized Kafka(与Zookeeper)部署到AWS。 我已经梳理了几个资源,并接近。 但是当我在AWS中使用Kafka框时,我可以看到Kafka以-1退出。 我只能假设卡夫卡不能到达Zookeeper,因为我没有设置任何名称parsing。 我正在看Consul作为解决scheme(见这里 )。

这看起来像一个体面的资源 。 但我甚至不能成功运行官方的Consul docker镜像 (在服务器或代理模式下)。 我可以得到这个工作( 在这里使用)。 但是,如果可能的话,我想使用官方的形象。

有没有人得到官方的领事形象与卡夫卡和Zookeeper工作?

A)首先,我想我想在docker-compose中工作。 这是我的docker-compose.yml 文件 ,试图让Kafka使用Consul来发现Zookeeper节点。

下面是相关的代码块,你可以运行docker-compose up consul 。 这不显示任何错误。 但是我)我无法达到http:// localhost:8500 。 然后ii)我怎么把卡夫卡指向Zookeeper和Kafka的客户到Kafka?

 version: '2' services: consul: image: consul:0.8.3 expose: - 8300 - 8301 - 8301/udp - 8302 - 8302/udp - 8400 - 8500 - 8600 - 8600/udp ports: - 8300:8300 - 8301:8301 - 8301/udp:8301/udp - 8302:8302 - 8302/udp:8302/udp - 8400:8400 - 8500:8500 - 8600:8600 - 8600/udp:8600/udp command: "agent -server -bind=0.0.0.0 -retry-join=0.0.0.0 -bootstrap-expect=1" 

B)然后我可以尝试在AWS中使用它(通过Terraform )。 理想情况下,我想有10个Kafka节点和2个Zookeeper节点。 但这是一个伸展的目标。

编辑

正如@MattSchuchard指出的那样,Mesos有马拉松和Chronos的select。

A)但是我想尝试一些我认为更直接的事情(即Consul,Zookeeper,Kafka),然后在另一个抽象层上进行分层。 安装DCOS似乎简化了像zutherb / terraform-dcos这样的东西。

B)但是走这条路线意味着将部署工作stream从i)仅仅部署ECS实例改变为ii)将DCOS集群部署到AWS,然后将泊坞窗图像部署到那里。 如果我知道把领事,Zookeeper,Kafka等容器部署到马拉松是很容易的,那么这样做会很好。 据我所知,我不得不使用文档cli,为我的实际应用程序和服务丢失Terraform的声明属性。 因为现在,没有官方的Terraform提供商与Marathon进行交互( nicgrayson / terraform-provider-marathon尽pipe)。

C)所以我来看看Mesosphere DCOS。 但希望只有一个小的configuration错误,我现在所拥有的。

有没有人得到官方的领事形象与卡夫卡和Zookeeper工作?

是的,我有:)请参阅https://github.com/dmstr/docker-roj/blob/master/data/example/discovery/consul/docker-compose.yml为示例configuration。 尽pipe映射端口我使用networking模式host的领事,只是更好地工作。

你可以看一下关于如何在AWS上与领事build立群组的文档。

虽然这可能不能回答你所有的问题,但是看看你如何设置你的群体仍然是一个很好的资源。 因为这是一个非常简单的解决scheme。 随意提交roj的问题或PR。