第 6 章 AMQ Streams Operators
AMQ Streams 支持使用 Operator 在 OpenShift 中部署和管理 Kafka 的组件和依赖项。
Operator 是一种打包、部署和管理 OpenShift 应用的方法。AMQ Streams Operator 扩展 OpenShift 功能,自动化与 Kafka 部署相关的常见和复杂任务。通过在代码中实施 Kafka 操作知识,可以简化 Kafka 管理任务,且需要较少的人工干预。
Operator
AMQ Streams 提供用于管理在 OpenShift 集群中运行的 Kafka 集群的 Operator。
- 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 配置的一部分。
AMQ Streams 架构中的 Operator
6.1. Cluster Operator
AMQ Streams 使用 Cluster Operator 来部署和管理集群。默认情况下,当您部署 AMQ Streams 时,会部署单个 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
资源来部署以下 AMQ Streams 操作器:
-
主题 Operator 通过
KafkaTopic
自定义资源提供 operator 风格主题管理 -
用户 Operator 通过
KafkaUser
自定义资源提供 operator 风格的用户管理
在部署时实体 Operator 中的主题 Operator 和用户 Operator 功能。
您可以将 Cluster Operator 与 AMQ Streams Drain Cleaner 部署搭配,以帮助 pod 驱除。通过部署 AMQ Streams Drain Cleaner,您可以使用 Cluster Operator 移动 Kafka pod 而不是 OpenShift。AMQ Streams Drain Cleaner 使用滚动更新注解来注解被驱除的 pod。该注解告知 Cluster Operator 执行滚动更新。
Cluster Operator 构架示例