Docker-ized Consul、Zookeeper 和 Amazon-ECS 中的 Kafka

Docker-ized Consul, Zookeeper and Kafka in Amazon-ECS

我正在尝试将 docker 化的 Kafka(带有 Zookeeper)部署到 AWS。我梳理了几种资源,并接近了。但是当我通过 ssh 进入 AWS 中的 Kafka 盒子时,我可以看到 Kafka 以 -1 退出。我只能假设 Kafka 无法访问 Zookeeper,因为我没有设置任何名称解析。我正在寻找 Consul 作为解决方案(参见 here)。

这看起来不错 resource. But I can’t even successfully run the official Consul docker image (in either server or agent mode). I can get this one to work (used here)。但如果可能的话,我想使用官方图片。

有没有人得到与 Kafka 和 Zookeeper 一起工作的官方 Consul 镜像?

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

下面是相关的代码块,您可以 运行 和 docker-compose up consul。这不会显示任何错误。但是 i) 我无法到达 http://localhost:8500ii) 然后我如何将 Kafka 指向 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,以及 Marathon 和 Chronos。

A) 但我想尝试一些我认为更直接的东西(即 Consul、Zookeeper、Kafka),然后再进行另一个抽象。安装 DCOS 似乎简化了 zutherb/terraform-dcos 之类的事情。

B) 但走这条路意味着将部署工作流程从 i) 仅部署 ECS 实例更改为 ii) 将 DCOS 集群部署到 AWS,然后部署 docker 图片到那个。如果我能知道将 Consul、Zookeeper、Kafka 等容器部署到 Marathon 很容易,那就太好了。据我所知,我必须使用 docs cli,为我的实际应用程序和服务丢失 Terraform 的声明 属性。因为就目前而言,没有用于与 Marathon 交互的官方 Terraform 提供程序(尽管 nicgrayson/terraform-provider-marathon)。

C) 那我就来看看Mesosphere DCOS吧。但希望我现在拥有的只是一个小的配置错误。

Has anyone gotten the official Consul image working with Kafka and Zookeeper?

是的,我有 :) 请参阅 https://github.com/dmstr/docker-roj/blob/master/data/example/discovery/consul/docker-compose.yml 以获取示例配置。尽管有映射端口,但我对 consul 使用网络模式 host,效果更好。

您可以查看有关如何 setup a swarm with consul on AWS 的文档。

虽然这可能无法回答您所有的问题,但它仍然是了解如何设置 swarm 的好资源;因为这是一个非常简单的解决方案。欢迎为 roj.

提交问题或 PR