我试图部署一个停靠Kafka(与zookeeper)到aws。我梳理了好几个资源,很接近。但是当我ssh到aws中的kafka框中时,我可以看到kafka正在以-1退出。我只能假设Kafka联系不到zookeeper,因为我还没有设置任何名字解析。我把consul看作是解决这个问题的一个方法(见这里)。
这看起来是个不错的资源。但我甚至不能成功运行正式的consul docker映像(在服务器或代理模式下)。我可以让这个工作(在这里使用)。但如果可能的话,我想使用官方图片。
有人和Kafka和Zookeeper一起工作时得到了官方的领事形象吗?
a) 首先,我想让它在docker compose中工作。这是我的docker-compose.yml文件,我试图让kafka使用consul来发现zookeeper节点。
下面是相关的代码块,您可以使用它运行 docker-compose up consul
. 这没有显示任何错误。但我)我够不着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,马拉松和chronos。
a) 但我想先尝试一些我认为更直接的东西(比如领事、Zookeeper、Kafka),然后再进行另一种抽象。安装dcos似乎简化了zutherb/terraformdcos之类的东西。
b) 但走这条路意味着将部署工作流从i)只部署ecs示例,改为ii)将dcos集群部署到aws,然后将docker映像部署到aws。如果我知道把领事馆、Zookeeper、Kafka等集装箱部署到马拉松比赛上很容易,那就太好了。但据我所知,我不得不使用docscli,失去了terraform对我实际应用和服务的声明性属性。因为从目前的情况来看,没有官方的地形提供商与马拉松进行交互(尽管有nicgrayson/地形提供商marathon)。
c) 我来看看中间层DCO。但希望我现在所做的只是一个小小的配置错误。
1条答案
按热度按时间ni65a41a1#
有人和Kafka和Zookeeper一起工作时得到了官方的领事形象吗?
是的,我有:)请看https://github.com/dmstr/docker-roj/blob/master/data/example/discovery/consul/docker-compose.yml 例如配置。尽管有Map端口,我还是使用网络模式
host
对执政官来说,这更有效。你可以看看关于如何在aws上设置一个与领事swarm的文档。
虽然这可能不能回答你所有的问题,但它仍然可以是一个很好的资源,看看你如何设置你的群;因为这是一个非常简单的解决方案。请随时提交roj的问题或prs。