运行 Kafka on Kubernetes 是个好方法吗?
Is it a good way to run Kafka on Kubernetes?
对于大型在线应用程序,使用 k8s 来 运行 它。规模可能每天 activity 用户 500,000.
k8s里面的应用需要消息功能-Pub/Sub,有这些选项:
- 卡夫卡
- RabbitMQ
- Redis
卡夫卡
它需要 zookeeper 并且在 os 上 运行 取决于磁盘 I/O。那么如果将其安装到k8s集群中,如何呢?性能会更差?
并且,如果将 Kafka 保留在 k8s 集群之外,从 k8s 集群内部的应用程序连接 Kafka,那么性能如何?他们在不同的层,不会慢吗?
RabbitMQ
它比 Kafka 慢,但是对于每天 activity 用户 500,000 的应用程序来说,它足够好吗?如果是这样,也许是个不错的选择。
Redis
这是另一种选择。也许是 most 简单的一个。但是从互联网上我了解到它有时会发送 ose 消息。如果是真的,那就太糟糕了。
所以,most 重要的是,在 k8s 上使用 Kafka(也有 zookeeper),在这个用例中好还是不好?
对于Kafka,你可以找到一些建议here. Kubernetes 1.7+ supports local persistent volume,这可能对Kafka部署有好处。
是的,运行 Kubernetes 上的 Kafka 很棒。看看这个例子:https://github.com/Yolean/kubernetes-kafka。它包括 ZooKeeper 和 Kafka 作为 StatefulSet
s.
PS。 运行 您在 Kubernetes 上提出的问题中的任何服务都会令人愉快。您可以 Google 服务名称和 "kubernetes" 并找到示例清单。这里有很多例子:https://github.com/kubernetes/charts.
您还可以看看以下项目:
https://github.com/EnMasseProject/barnabas
关于 运行 Kafka on Kubernetes 和 OpenShift。它提供了带有持久卷或仅在内存中的 StatefulSets 部署(用于开发或测试目的)。它还为 Kafka Connect 和 Prometheus 指标提供部署。
在 DigitalOcean 的 Kubernetes 上使用外部访问 Kafka/Zookeeper 的另一个简单配置:
https://github.com/StanislavKo/k8s_digitalocean_kafka
您可以通过常规二进制协议从 AWS/DO/GCE 外部连接到 Kafka。连接是 PLAINTEXT 或 SASL_PLAINTEXT (user/password).
Kafka 集群是 StatefulSet,因此您可以轻松扩展集群。
对于大型在线应用程序,使用 k8s 来 运行 它。规模可能每天 activity 用户 500,000.
k8s里面的应用需要消息功能-Pub/Sub,有这些选项:
- 卡夫卡
- RabbitMQ
- Redis
卡夫卡
它需要 zookeeper 并且在 os 上 运行 取决于磁盘 I/O。那么如果将其安装到k8s集群中,如何呢?性能会更差?
并且,如果将 Kafka 保留在 k8s 集群之外,从 k8s 集群内部的应用程序连接 Kafka,那么性能如何?他们在不同的层,不会慢吗?
RabbitMQ
它比 Kafka 慢,但是对于每天 activity 用户 500,000 的应用程序来说,它足够好吗?如果是这样,也许是个不错的选择。
Redis
这是另一种选择。也许是 most 简单的一个。但是从互联网上我了解到它有时会发送 ose 消息。如果是真的,那就太糟糕了。
所以,most 重要的是,在 k8s 上使用 Kafka(也有 zookeeper),在这个用例中好还是不好?
对于Kafka,你可以找到一些建议here. Kubernetes 1.7+ supports local persistent volume,这可能对Kafka部署有好处。
是的,运行 Kubernetes 上的 Kafka 很棒。看看这个例子:https://github.com/Yolean/kubernetes-kafka。它包括 ZooKeeper 和 Kafka 作为 StatefulSet
s.
PS。 运行 您在 Kubernetes 上提出的问题中的任何服务都会令人愉快。您可以 Google 服务名称和 "kubernetes" 并找到示例清单。这里有很多例子:https://github.com/kubernetes/charts.
您还可以看看以下项目:
https://github.com/EnMasseProject/barnabas
关于 运行 Kafka on Kubernetes 和 OpenShift。它提供了带有持久卷或仅在内存中的 StatefulSets 部署(用于开发或测试目的)。它还为 Kafka Connect 和 Prometheus 指标提供部署。
在 DigitalOcean 的 Kubernetes 上使用外部访问 Kafka/Zookeeper 的另一个简单配置:
https://github.com/StanislavKo/k8s_digitalocean_kafka
您可以通过常规二进制协议从 AWS/DO/GCE 外部连接到 Kafka。连接是 PLAINTEXT 或 SASL_PLAINTEXT (user/password).
Kafka 集群是 StatefulSet,因此您可以轻松扩展集群。