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:8500 。 ii) 然后我如何将 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
我正在尝试将 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:8500 。 ii) 然后我如何将 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