6.2. 部署 Cluster Operator


Cluster Operator 负责在 OpenShift 集群中部署和管理 Kafka 集群。

当 Cluster Operator 运行时,它会开始监视 Kafka 资源的更新。

默认情况下,会部署 Cluster Operator 的单个副本。您可以使用领导选举机制添加副本,以便在出现问题时有其他 Cluster Operator 处于待机状态。如需更多信息,请参阅 第 8.5.3 节 “使用领导选举机制运行多个 Cluster Operator 副本”

6.2.1. 指定 Cluster Operator 监视的命名空间

Cluster Operator 监视部署了 Kafka 资源的命名空间中是否有更新。部署 Cluster Operator 时,您可以指定要在 OpenShift 集群中监视的命名空间。您可以指定以下命名空间:

监视多个所选命名空间会因为增加处理开销而对性能有影响。要优化命名空间监控的性能,通常建议监视单个命名空间或监控整个集群。监控单个命名空间允许集中监控特定于命名空间的资源,而监控所有命名空间则提供所有命名空间中集群资源的全面视图。

Cluster Operator 会监视以下资源的更改:

  • Kafka 集群的 Kafka。
  • Kafka Connect 集群的 KafkaConnect
  • 在 Kafka Connect 集群中创建和管理连接器的 KafkaConnector
  • Kafka MirrorMaker 实例的 KafkaMirrorMaker。
  • Kafka MirrorMaker 2 实例的 KafkaMirrorMaker2
  • KafkaBridge 用于 Kafka Bridge 实例。
  • Cruise Control 优化请求的 KafkaRebalance

当在 OpenShift 集群中创建其中一个资源时,Operator 会从资源获取集群描述,并通过创建必要的 OpenShift 资源(如 Deployments、Pod、服务和 ConfigMap)开始为资源创建新集群。

每次更新 Kafka 资源时,Operator 会在为资源组成集群的 OpenShift 资源上执行对应的更新。

资源可以被修补或删除,然后重新创建资源以便使集群反映集群的所需状态。此操作可能会导致滚动更新导致服务中断。

删除资源时,操作器会取消部署集群并删除所有相关 OpenShift 资源。

注意

虽然 Cluster Operator 可以监控 OpenShift 集群中的一个、多个或所有命名空间,但主题 Operator 和 User Operator 会监视单个命名空间中的 KafkaTopicKafkaUser 资源。如需更多信息,请参阅 第 1.2.1 节 “在 OpenShift 命名空间中观察 AMQ Streams 资源”

6.2.2. 部署 Cluster Operator 以观察单个命名空间

此流程演示了如何部署 Cluster Operator,以观察 OpenShift 集群中的单个命名空间中的 AMQ Streams 资源。

先决条件

  • 您需要具有创建和管理 CustomResourceDefinition 和 RBAC (ClusterRoleRoleBinding和 RoleBinding )资源的权限的帐户。

流程

  1. 编辑 AMQ Streams 安装文件,以使用 Cluster Operator 将安装到的命名空间。

    例如,在这个流程中,Cluster Operator 已安装到命名空间 my-cluster-operator-namespace 中。

    在 Linux 中,使用:

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap

    对于 MacOS,使用:

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap
  2. 部署 Cluster Operator:

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
    Copy to Clipboard Toggle word wrap
  3. 检查部署的状态:

    oc get deployments -n my-cluster-operator-namespace
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1
    Copy to Clipboard Toggle word wrap

    READY 显示就绪/预期的副本数。当 AVAILABLE 输出显示为 1 时,部署成功。

6.2.3. 部署 Cluster Operator 以观察多个命名空间

此流程演示了如何部署 Cluster Operator,以观察 OpenShift 集群中的多个命名空间中的 AMQ Streams 资源。

先决条件

  • 您需要具有创建和管理 CustomResourceDefinition 和 RBAC (ClusterRoleRoleBinding和 RoleBinding )资源的权限的帐户。

流程

  1. 编辑 AMQ Streams 安装文件,以使用 Cluster Operator 将安装到的命名空间。

    例如,在这个流程中,Cluster Operator 已安装到命名空间 my-cluster-operator-namespace 中。

    在 Linux 中,使用:

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap

    对于 MacOS,使用:

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap
  2. 编辑 install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml 文件,以添加 Cluster Operator 将监视到 STRIMZI_NAMESPACE 环境变量的所有命名空间的列表。

    例如,在这个流程中,Cluster Operator 将监视 watched-namespace-1,watched-namespace-2, watched-namespace-3

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.6.0
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: watched-namespace-1,watched-namespace-2,watched-namespace-3
    Copy to Clipboard Toggle word wrap
  3. 对于列出的每个命名空间,安装 RoleBindings

    在这个示例中,将这些命令的 watched-namespace 替换为在前一步中列出的命名空间,为 watched-namespace-1, watched-namespace-2, watched-namespace-3 重复这个操作:

    oc create -f install/cluster-operator/020-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
    oc create -f install/cluster-operator/023-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
    oc create -f install/cluster-operator/031-RoleBinding-strimzi-cluster-operator-entity-operator-delegation.yaml -n <watched_namespace>
    Copy to Clipboard Toggle word wrap
  4. 部署 Cluster Operator:

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
    Copy to Clipboard Toggle word wrap
  5. 检查部署的状态:

    oc get deployments -n my-cluster-operator-namespace
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1
    Copy to Clipboard Toggle word wrap

    READY 显示就绪/预期的副本数。当 AVAILABLE 输出显示为 1 时,部署成功。

6.2.4. 部署 Cluster Operator 以监视所有命名空间

此流程演示了如何部署 Cluster Operator,以观察 OpenShift 集群中所有命名空间的 AMQ Streams 资源。

在这种模式下运行时,Cluster Operator 会在创建的任何新命名空间中自动管理集群。

先决条件

  • 您需要具有创建和管理 CustomResourceDefinition 和 RBAC (ClusterRoleRoleBinding和 RoleBinding )资源的权限的帐户。

流程

  1. 编辑 AMQ Streams 安装文件,以使用 Cluster Operator 将安装到的命名空间。

    例如,在这个流程中,Cluster Operator 已安装到命名空间 my-cluster-operator-namespace 中。

    在 Linux 中,使用:

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap

    对于 MacOS,使用:

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
    Copy to Clipboard Toggle word wrap
  2. 编辑 install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml 文件,将 STRIMZI_NAMESPACE 环境变量的值设置为 *

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          # ...
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.6.0
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: "*"
            # ...
    Copy to Clipboard Toggle word wrap
  3. 创建 ClusterRoleBindings,将所有命名空间的集群范围访问权限授予 Cluster Operator。

    oc create clusterrolebinding strimzi-cluster-operator-namespaced --clusterrole=strimzi-cluster-operator-namespaced --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    oc create clusterrolebinding strimzi-cluster-operator-watched --clusterrole=strimzi-cluster-operator-watched --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    oc create clusterrolebinding strimzi-cluster-operator-entity-operator-delegation --clusterrole=strimzi-entity-operator --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    Copy to Clipboard Toggle word wrap
  4. 将 Cluster Operator 部署到 OpenShift 集群。

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
    Copy to Clipboard Toggle word wrap
  5. 检查部署的状态:

    oc get deployments -n my-cluster-operator-namespace
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1
    Copy to Clipboard Toggle word wrap

    READY 显示就绪/预期的副本数。当 AVAILABLE 输出显示为 1 时,部署成功。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat