跳到主要内容

创建 Kafka 集群

本文档展示如何创建一个 Kafka 集群。

开始之前

  • 安装 kbcli

  • 安装 KubeBlocks

  • 确保 Kafka 引擎 已启用。如果引擎未启用,可参考该文档,启用引擎。

    kbcli addon list
    >
    NAME TYPE STATUS EXTRAS AUTO-INSTALL
    ...
    kafka Helm Enabled true
    ...
备注
  • KubeBlocks 集成了 Kafka v3.3.2,以 KRaft 模式运行。
  • 在生产环境中,不建议以组合模式使用 KRaft 集群。
  • 建议将控制器数量设置在 3 到 5 个之间,实现复杂性和可用性的平衡。

创建 Kafka 集群

使用 kbcli cluster create 命令创建集群。您还可以使用 --set 参数自定义集群资源。

kbcli cluster create kafka
备注

您也可以通过使用 --help 查看命令相关选项。


kbcli cluster create kafka --help

下表详细描述了各类自定义参数。请务必设置 --termination-policy。此外,强烈建议你打开监视器并启用所有日志。

📎 Table 1. kbcli cluster create 选项详情

选项解释
--mode='combined'表示 Kafka kraft 集群的模式。'combined' 表示使用组合的代理和控制器节点,'separated' 表示独立运行代理和控制器。有效值为 [combined, separated]
--replicas=1表示组合模式下的 Kafka 代理的副本数。在组合模式下,此值还表示 kraft 控制器的数量。有效值为 [1,3,5]
--broker-replicas=1表示分离模式下的 Kafka 代理的副本数。
--controller-replicas=1表示分离模式下的 Kafka 控制器的副本数。在分离模式下,此数字表示 kraft 控制器的数量。有效值为 [1,3,5]
--termination-policy='Delete'表示集群的终止策略。有效值为 [DoNotTerminate, Halt, Delete, WipeOut]
DoNotTerminate:DoNotTerminate 禁止删除操作。
Halt:Halt 删除工作负载资源(如 statefulset、deployment 等),但保留 PVC。
Delete:Delete 在 Halt 的基础上删除了 PVC。
WipeOut:WipeOut 在 Delete 的基础上删除了备份存储位置中的所有卷快照和快照数据。
--storage-enable=false表示是否启用 Kafka 的存储功能。
--host-network-accessible=false指定集群是否可以从 VPC 内部访问。
--publicly-accessible=false指定集群是否可以从公共互联网访问。
--broker-heap='-XshowSettings:vm -XX:MaxRAMPercentage=100 -Ddepth=64'表示 Kafka 代理的 JVM 堆设置。
--controller-heap='-XshowSettings:vm -XX:MaxRAMPercentage=100 -Ddepth=64'表示分离模式下 Kafka 控制器的 JVM 堆设置。仅在 mode='separated' 时生效。
--cpu=1表示 CPU 内核数。
--memory=1表示内存,单位为 Gi。
--storage=20表示数据存储大小,单位为 Gi。
--storage-class=''表示 Kafka 数据存储的 StorageClass。
--meta-storage=5表示元数据存储大小,单位为 Gi。
--meta-storage-class=''表示 Kafka 元数据存储的 StorageClass。
--monitor-enable=false表示是否启用 Kafka 的监视器。
--monitor-replicas=1表示 Kafka 监视器的副本数。
--sasl-enable=false表示是否启用 SASL/PLAIN 进行 Kafka 身份验证。
-server: admin/kubeblocks
-client: client/kubeblocks
内置的 jaas 文件存储在 /tools/client-ssl.properties 中。