第 6 章 Apache Kafka Operator 的流
Operator 是一种打包、部署和管理 OpenShift 应用程序的方法。它们提供了一种扩展 Kubernetes API 的方法,并简化与特定应用程序关联的管理任务。
Apache Kafka operator 的流支持与 Kafka 部署相关的任务。Apache Kafka 自定义资源的流提供部署配置。这包括 Kafka 集群、主题、用户和其他组件的配置。利用自定义资源配置,Apache Kafka operator 的 Streams 在 OpenShift 环境中创建、配置和管理 Kafka 组件。使用 Operator 可减少人工干预并简化在 OpenShift 集群中管理 Kafka 的过程。
Apache Kafka 的流提供以下操作器来管理在 OpenShift 集群中运行的 Kafka 集群。
- Cluster Operator
- 部署和管理 Apache Kafka 集群、Kafka Connect、Kafka MirrorMaker、Kafka Bridge、Kafka Exporter、Cruise Control 和 Entity Operator
- Entity Operator
- 包括 Topic Operator 和 User Operator
- Topic Operator
- 管理 Kafka 主题
- User Operator
- 管理 Kafka 用户
Cluster Operator 可以在与 Kafka 集群同时部署 Topic Operator 和 User Operator 作为 Entity Operator 配置的一部分。
Streams for Apache Kafka 架构中的 Operator
6.1. Cluster Operator
Apache Kafka 的 Streams 使用 Cluster Operator 来部署和管理集群。默认情况下,当您为 Apache Kafka 部署流时,会部署一个 Cluster Operator 副本。您可以使用领导选举机制添加副本,以便在出现问题时有其他 Cluster Operator 处于待机状态。
Cluster Operator 管理以下 Kafka 组件的集群:
- Kafka (包括 ZooKeeper、实体 Operator、Kafka Exporter 和 Cruise Control)
- Kafka Connect
- Kafka MirrorMaker
- Kafka Bridge
集群使用自定义资源部署。
例如,要部署 Kafka 集群:
-
在 OpenShift 集群中创建带有集群配置的
Kafka
资源。 -
Cluster Operator 根据 Kafka 资源中声明的内容部署对应的
Kafka
集群。
Cluster Operator 还可通过配置 Kafka
资源来部署 Apache Kafka operator 的以下流:
-
主题 Operator 通过
KafkaTopic
自定义资源提供 operator 风格主题管理 -
用户 Operator 通过
KafkaUser
自定义资源提供 operator 风格的用户管理
在部署时实体 Operator 中的主题 Operator 和用户 Operator 功能。
您可以使用 Cluster Operator 部署 Apache Kafka Drain Cleaner 的 Streams,以帮助 pod 驱除。通过为 Apache Kafka Drain Cleaner 部署流,您可以使用 Cluster Operator 来移动 Kafka pod 而不是 OpenShift。Apache Kafka Drain Cleaner 的流使用滚动更新注解来注解被驱除的 pod。该注解告知 Cluster Operator 执行滚动更新。
Cluster Operator 构架示例