k8s kafka集群 连接不上_在K8S上运行Kafka合适吗?会遇到哪些陷阱?

本文探讨了在Kubernetes上运行Kafka集群的适合性,指出Kubernetes设计偏向于无状态工作负载,而Kafka为分布式数据库。运行Kafka需要考虑CPU、内存、存储和网络资源,特别是存储的持久性和网络延迟。Kubernetes的StatefulSets、Headless Services和持久卷可用于管理有状态工作负载,但需谨慎配置。文章强调了监控、日志、健康检查和扩展性的重要性,并讨论了备份和恢复策略。对于中小型集群,Kubernetes提供灵活性,但高延迟和吞吐量场景可能需要其他部署选项。
摘要由CSDN通过智能技术生成

原标题:在K8S上运行Kafka合适吗?会遇到哪些陷阱?

Kubernetes设计的初衷是运行无状态工作负载。这些通常采用微服务架构的工作负载,是轻量级,可水平扩展,遵循十二要素应用程序,可以处理环形断路和随机Monkey测试。

另一方面,Kafka本质上是一个分布式数据库。这意味着你必须处理状态,它比微服务更重量级。Kubernetes支持有状态的工作负载,但你必须谨慎对待它,正如Kelsey Hightower在最近的两条推文中指出的那样:

现在你应该在Kubernetes上运行Kafka吗?我的反问是:没有它,Kafka会跑得更好吗?这就是为什么我要指出Kafka和Kubernetes之间的相互补充性以及你可能遇到的陷阱。

一、运行时

让我们先看一下基本的东西——运行时本身。

1、进程

Kafka brokers对CPU很友好。TLS可能会引入一些开销。如果Kafka客户端使用加密,则需要更多CPU,但这不会影响brokers。

2、内存

Kafka brokers是内存消耗大户。JVM堆通常可以限制为4-5 GB,但由于Kafka大量使用页面缓存,因此还需要足够的系统内存。在Kubernetes中,可以相应地设置容器资源限制和请求。

3、存储

容器中的存储是短暂的——重启后数据将丢失。可以对Kafka数据使用emptyDir卷,这将产生相同的效果:brokers的数据将在停机后丢失。您的消息在其他broker上作为副本还是可以使用的。因此,重新启动后,失败的br

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值