在K8S上运行Kafka合适吗?会遇到哪些陷阱?( 四 )

StatefulSet是一个Kubernetes对象,用于处理需要协调的多个有状态工作负载。StatefulSets保证Pod的有序性和唯一性的。

3)Headless Services

服务通过逻辑名称将Pod与客户端分离。Kubernetes负责负载平衡。但是,对于ZooKeeper和Kafka等有状态工作负载,客户端必须与特定实例进行通信。这就是 Headless Services发挥作用的地方:作为客户端,仍然可以获得逻辑名称,但不必直接访问Pod。

4)持久卷

如上所述,需要配置非本地持久块存储。

Yolean[3]提供了一套全面的清单,可以帮助您开始使用Kubernetes上的Kafka。

2、Helm Charts

Helm是Kubernetes的包管理器,类似yum,apt,Homebrew或Chocolatey等OS包管理器。它允许您安装Helm Charts中描述的预定义软件包。

精心设计的Helm Charts能简化所有参数正确配置的复杂任务,以便在Kubernetes上运行Kafka。有几张图表适用于Kafka的的可供选择:一个是处于演进状态的官方图表[4],一个来自Confluent,另一个来自Bitnami,仅举几例。

推荐阅读