1.2. AMQ Streams operator


AMQ Streams operator 是专门构建的,具有专家操作知识,以便在 OpenShift 上有效地管理 Kafka。每个操作器都执行不同的功能。

Cluster Operator
Cluster Operator 在 OpenShift 上处理 Apache Kafka 集群的部署和管理。它自动设置 Kafka 代理和其他 Kafka 组件和资源。
Topic Operator
主题 Operator 管理 Kafka 集群中的创建、配置和删除主题。
User Operator
User Operator 管理需要访问 Kafka 代理的 Kafka 用户。

部署 AMQ Streams 时,您首先部署 Cluster Operator。然后,Cluster Operator 已准备好处理 Kafka 的部署。您还可以使用 Cluster Operator (推荐)或独立 Operator 部署 Topic Operator 和 User Operator。您可以将独立 Operator 与不是由 Cluster Operator 管理的 Kafka 集群一起使用。

主题 Operator 和 User Operator 是实体 Operator 的一部分。Cluster Operator 可以基于 Entity Operator 配置部署一个或多个 Operator。

重要

要部署独立 Operator,您需要设置环境变量以连接到 Kafka 集群。如果您使用 Cluster Operator 部署 Operator,则不需要设置这些环境变量,因为它们将由 Cluster Operator 设置。

Operator 在 OpenShift 命名空间中观察和管理 AMQ Streams 资源。Cluster Operator 可以监控 OpenShift 集群中的单个命名空间、多个命名空间或所有命名空间。主题 Operator 和用户 Operator 可以监视单个命名空间。

  • Cluster Operator 监视 Kafka 资源
  • 主题 Operator 监视 KafkaTopic 资源
  • User Operator 监视 KafkaUser 资源

主题 Operator 和 User Operator 只能监视命名空间中的单个 Kafka 集群。它们只能连接到单个 Kafka 集群。

如果多个主题 Operator 监控同一命名空间,则可能会出现名称冲突和主题删除。这是因为每个 Kafka 集群都使用名称相同的 Kafka 主题(如 __consumer_offsets)。请确定只有一个主题 Operator 会监视给定的命名空间。

当将多个用户 Operator 与单个命名空间一起使用时,带有给定用户名的用户可在多个 Kafka 集群中存在。

如果您使用 Cluster Operator 部署 Topic Operator 和 User Operator,它们会默认监控 Cluster Operator 部署的 Kafka 集群。您还可以使用 operator 配置中的 watchedNamespace 指定命名空间。

对于每个 Operator 的独立部署,您可以指定一个命名空间和与 Kafka 集群的连接,以便在配置中监视。

1.2.2. 管理 RBAC 资源

Cluster Operator 为需要访问 OpenShift 资源的 AMQ Streams 组件创建和管理基于角色的访问控制(RBAC)资源。

要使 Cluster Operator 正常工作,OpenShift 集群中需要权限与 Kafka 资源交互,如 KafkaKafkaConnect,以及 ConfigMapPodDeploymentService 等受管资源。

通过以下 OpenShift RBAC 资源指定权限:

  • ServiceAccount
  • RoleClusterRole
  • RoleBindingClusterRoleBinding

1.2.2.1. 委派特权到 AMQ Streams 组件

Cluster Operator 在名为 strimzi-cluster-operator 的服务帐户下运行。它被分配集群角色,授予为 AMQ Streams 组件创建 RBAC 资源的权限。角色绑定将集群角色与服务帐户关联。

OpenShift 会阻止一个 ServiceAccount 下运行组件授予授予 ServiceAccount 没有的另一个 ServiceAccount 权限。因为 Cluster Operator 会创建其管理的资源所需的 RoleBindingClusterRoleBinding RBAC 资源,所以需要一个赋予同一特权的角色。

以下小节描述了 Cluster Operator 所需的 RBAC 资源。

1.2.2.2. ClusterRole 资源

Cluster Operator 使用 ClusterRole 资源来提供资源所需的访问权限。根据 OpenShift 集群设置,可能需要集群管理员来创建集群角色。

注意

只有创建 ClusterRole 资源时才需要集群管理员权限。Cluster Operator 不会在集群管理员帐户下运行。

RBAC 资源遵循 最小特权原则,仅包含 Cluster Operator 运行 Kafka 组件集群所需的权限。

Cluster Operator 需要所有集群角色才能委派权限。

Expand
表 1.1. ClusterRole 资源
名称Description

strimzi-cluster-operator-namespaced

Cluster Operator 用来部署和管理操作对象的命名空间范围的资源的访问权限。

strimzi-cluster-operator-global

Cluster Operator 用来部署和管理操作对象的资源的访问权限。

strimzi-cluster-operator-leader-election

Cluster Operator 用来进行领导选举机制的访问权限。

strimzi-cluster-operator-watched

Cluster Operator 用来监视和管理 AMQ Streams 自定义资源的访问权限。

strimzi-kafka-broker

在使用机架感知时,访问允许 Kafka 代理从 OpenShift worker 节点获取拓扑标签的权限。

strimzi-entity-operator

主题和用户 Operator 使用的访问权限来管理 Kafka 用户和主题。

strimzi-kafka-client

在使用机架感知时,访问允许 Kafka Connect、MirrorMaker (1 和 2)和 Kafka Bridge 的权限,以从 OpenShift worker 节点获取拓扑标签。

1.2.2.3. ClusterRoleBinding 资源

Cluster Operator 使用 ClusterRoleBindingRoleBinding 资源将其 ClusterRoleServiceAccount 关联。包含集群范围资源的集群角色需要集群角色绑定。

Expand
表 1.2. ClusterRoleBinding 资源
名称Description

strimzi-cluster-operator

为 Cluster Operator 授予来自 strimzi-cluster-operator-global 集群角色的权限。

strimzi-cluster-operator-kafka-broker-delegation

为 Cluster Operator 授予 strimzi-entity-operator 集群角色的权限。

strimzi-cluster-operator-kafka-client-delegation

授予 Cluster Operator 来自 strimzi-kafka-client 集群角色的权限。

Expand
表 1.3. RoleBinding 资源
名称Description

strimzi-cluster-operator

为 Cluster Operator 授予来自 strimzi-cluster-operator-namespaced 集群角色的权限。

strimzi-cluster-operator-leader-election

为 Cluster Operator 授予来自 strimzi-cluster-operator-leader-election 集群角色的权限。

strimzi-cluster-operator-watched

为 Cluster Operator 授予 strimzi-cluster-operator-watched 集群角色的权限。

strimzi-cluster-operator-entity-operator-delegation

为 Cluster Operator 授予 strimzi-cluster-operator-entity-operator-delegation 集群角色的权限。

1.2.2.4. ServiceAccount 资源

Cluster Operator 使用 strimzi-cluster-operator ServiceAccount 运行。此服务帐户授予其管理操作对象所需的权限。Cluster Operator 创建额外的 ClusterRoleBindingRoleBinding 资源,以将其中一些 RBAC 权限委派给操作对象。

每个操作对象都使用 Cluster Operator 创建自己的服务帐户。这允许 Cluster Operator 遵循最小特权原则,并只授予操作对象只包括实际需要的访问权限。

Expand
表 1.4. ServiceAccount 资源
名称使用者

<cluster_name>-zookeeper

ZooKeeper pod

<cluster_name>-kafka

Kafka 代理 pod

<cluster_name>-entity-operator

Entity Operator

<cluster_name>-cruise-control

Cruise Control pod

<cluster_name>-kafka-exporter

Kafka Exporter pod

<cluster_name>-connect

Kafka Connect pod

<cluster_name>-mirror-maker

MirrorMaker Pod

<cluster_name>-mirrormaker2

MirrorMaker 2 pod

<cluster_name>-bridge

Kafka Bridge pod

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat