Kafka 使用 Docker 作为生产集群

Kafka using Docker for production clusters

我们需要搭建一个集群中有3-5个节点的Kafka生产集群,

我们有以下选择:

  1. Docker 容器中的 Kafka(Kafka 集群在每个节点上包含 zookeeper 和模式注册表)

  2. Kafka 集群未使用 docker(Kafka 集群在每个节点上包含 zookeeper 和模式注册表)

由于我们讨论的是生产集群,因此我们需要良好的性能,因为我们拥有高 read/write 磁盘(磁盘大小为 10T)、良好的 IO 性能等

那么使用Docker的Kafka是否满足生产集群的要求?

更多信息 - https://www.infoq.com/articles/apache-kafka-best-practices-to-optimize-your-deployment/

当然可以。我没有这方面的个人经验,但如果您没有管理其他有状态容器的经验,我建议您避免使用它。

就 "getting started" 在容器中使用 Kafka 而言,Kubernetes 是记录最多的方式,而 Strimzi(Lightbend 的免费、可选商业支持)或 Confluent Operator(Confluent 的商业支持)可以使这很容易使用 Kubernetes 或 Openshift。或者 DC/OS 通过 Mesos/Marathon 提供 Kafka 服务。如果您还没有这些服务中的任何一项,那么我认为您显然不应该使用容器。

根据我的经验,裸机或虚拟化部署比手动部署的容器化部署更容易维护。特别适用于日志记录、指标收集和通过网络静态分配的 Kafka 侦听器映射。 Confluent 提供 Ansible 脚本来部署到这样的环境


这并不是说有公司在这方面取得了成功,或者至少尝试过。 IBM、RedHat 和 Shopify 立即出现在我的搜索中,例如

这里说几点Kafka在容器中需要考虑的事情 https://www.confluent.io/kafka-summit-london18/kafka-in-containers-in-docker-in-kubernetes-in-the-cloud

https://kafka-summit.org/sessions/running-kafka-kubernetes-practical-guide/