第 5 章 使用安装工件部署 AMQ 流


作为使用 AMQ Streams Operator 部署 AMQ Streams Operator 的替代方案,您可以使用安装工件。为 部署 AMQ Streams 准备了环境,本节显示:

流程假定 OpenShift 集群可用并在运行。

AMQ Streams 基于 AMQ Streams Strimzi 0.24.x。本节论述了在 OpenShift 4.6 和 4.8 中部署 AMQ Streams 的步骤。

注意

要运行本指南中的命令,您的集群用户必须有权管理基于角色的访问控制(RBAC)和 CRD。

5.1. 创建 Kafka 集群

要使用 Cluster Operator 管理 Kafka 集群,您必须将其部署为 Kafka 资源。AMQ Streams 提供了用于执行此操作的示例部署文件。您可以使用这些文件来同时部署 Topic Operator 和 User Operator。

如果您还没有将 Kafka 集群部署为 Kafka 资源,则无法使用 Cluster Operator 管理它。例如,这适用于在 OpenShift 外部运行的 Kafka 集群。但是,您可以部署和使用 Topic Operator 和 User Operator 作为独立组件。

注意

Cluster Operator 可以监视 OpenShift 集群中的一个、多个或所有命名空间。Topic Operator 和 User Operator 在 Kafka 集群部署的单一命名空间中监视 KafkaTopics 和 KafkaUsers

使用 Topic Operator 和 User Operator 部署 Kafka 集群

如果要将 Topic Operator 和 User Operator 与由 AMQ Streams 管理的 Kafka 集群搭配使用,请执行这些部署步骤。

部署独立主题 Operator 和 User Operator

如果要将 Topic Operator 和 User Operator 与 不由 AMQ Streams 管理的 Kafka 集群搭配使用,请执行这些部署步骤。

5.1.1. 部署 Cluster Operator

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

本节中的步骤显示:

5.1.1.1. 监视 Cluster Operator 部署的选项

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

您可以选择部署 Cluster Operator 来监视 Kafka 资源:

  • 单个命名空间(包含 Cluster Operator 的同一命名空间)
  • 多个命名空间
  • 所有命名空间
注意

AMQ Streams 提供示例 YAML 文件,以简化部署过程。

Cluster Operator 会监视以下资源的变化:

  • Kafka 集群的 Kafka。
  • Kafka Connect 集群的 Kafka Connect。
  • 用于 Kafka Connect 集群的 KafkaConnectS2I,支持 Source2Image。
  • 用于在 Kafka Connect 集群中创建和管理连接器的 KafkaConnector
  • Kafka MirrorMaker 实例的 KafkaMirror Maker。
  • Kafka Bridge 实例的 KafkaBridge

在 OpenShift 集群中创建其中一个资源时,操作器从该资源获取集群描述,并通过创建必要的 OpenShift 资源(如 StatefulSets、Service 和 ConfigMap)来开始为资源创建新集群。

每次更新 Kafka 资源时,操作器都会对构成该资源的 OpenShift 资源执行相应的更新。

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

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

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

先决条件

  • 此流程需要使用 OpenShift 用户帐户,该帐户可以创建自定义 ResourceDefinition、 ClusterRole 和 ClusterRoleBinding。在 OpenShift 集群中使用 Role Base Access Control(RBAC)通常意味着只有 system:admin 等 OpenShift 集群管理员才有创建、编辑和删除这些资源的权限。

流程

  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. 验证 Cluster Operator 是否已成功部署:

    oc get deployments
    Copy to Clipboard Toggle word wrap

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

先决条件

  • 此流程需要使用 OpenShift 用户帐户,该帐户可以创建自定义 ResourceDefinition、 ClusterRole 和 ClusterRoleBinding。在 OpenShift 集群中使用 Role Base Access Control(RBAC)通常意味着只有 system:admin 等 OpenShift 集群管理员才有创建、编辑和删除这些资源的权限。

流程

  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-1watched-namespace-2watched-namespace-3

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq7/amq-streams-rhel7-operator:1.8.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/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. 验证 Cluster Operator 是否已成功部署:

    oc get deployments
    Copy to Clipboard Toggle word wrap

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

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

先决条件

  • 此流程需要使用 OpenShift 用户帐户,该帐户可以创建自定义 ResourceDefinition、 ClusterRole 和 ClusterRoleBinding。在 OpenShift 集群中使用 Role Base Access Control(RBAC)通常意味着只有 system:admin 等 OpenShift 集群管理员才有创建、编辑和删除这些资源的权限。

流程

  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/amq7/amq-streams-rhel7-operator:1.8.0
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: "*"
            # ...
    Copy to Clipboard Toggle word wrap
  3. 创建 ClusterRoleBinding, 将所有命名空间的集群范围访问权限授予 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-entity-operator-delegation --clusterrole=strimzi-entity-operator --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    Copy to Clipboard Toggle word wrap

    my-cluster-operator-namespace 替换为您要将 Cluster Operator 安装到的命名空间。

  4. 将 Cluster Operator 部署到 OpenShift 集群。

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
    Copy to Clipboard Toggle word wrap
  5. 验证 Cluster Operator 是否已成功部署:

    oc get deployments
    Copy to Clipboard Toggle word wrap

5.1.2. 部署 Kafka

Apache Kafka 是一个开源分布式发布-订阅消息传递系统,用于容错实时数据源。

本节中的步骤显示:

安装 Kafka 时,AMQ Streams 还会安装 ZooKeeper 集群,并添加必要的配置以将 Kafka 与 ZooKeeper 连接。

5.1.2.1. 部署 Kafka 集群

此流程演示了如何使用 Cluster Operator 将 Kafka 集群部署到 OpenShift 中。

部署使用 YAML 文件提供规格来创建 Kafka 资源。

AMQ Streams 提供了在 example /kafka/ 中部署所需的 YAML 文件示例

kafka-persistent.yaml
使用三个 ZooKeeper 和三个 Kafka 节点部署一个持久集群。
kafka-jbod.yaml
使用三个 ZooKeeper 和三个 Kafka 节点部署持久集群(每个集群使用多个持久性卷)。
kafka-persistent-single.yaml
使用单个 ZooKeeper 节点和单个 Kafka 节点部署持久集群。
kafka-ephemeral.yaml
使用三个 ZooKeeper 和三个 Kafka 节点部署一个临时集群。
kafka-ephemeral-single.yaml
部署具有三个 ZooKeeper 节点和单个 Kafka 节点的临时集群。

在这一流程中,我们使用 临时 和永久 Kafka 集群部署的示例:

临时集群
通常,临时(或临时) Kafka 集群适合用于开发和测试目的,不适用于生产环境。此部署使用 emptyDir 卷来存储代理信息(用于 ZooKeeper)和主题或分区(对于 Kafka)。使用 emptyDir 卷意味着其内容严格与 pod 生命周期相关,并在 pod 停机时被删除。
持久性集群
持久的 Kafka 集群使用 PersistentVolume 来存储 ZooKeeper 和 Kafka 数据。该 PersistentVolume 使用 PersistentVolumeClaim 来获取,使它独立于实际的 PersistentVolume 类型。例如,它可以在 Amazon AWS 部署中使用 Amazon EBS 卷,而不更改 YAML 文件。PersistentVolumeClaim 可以使用 StorageClass 来触发自动卷置备。

YAML 文件示例指定最新支持的 Kafka 版本,以及其支持的日志消息格式版本和broker 协议版本的配置。在 升级 Kafka 时,需要更新这些属性。

示例集群默认命名为 my-cluster。集群名称通过资源名称定义,在部署集群后无法更改。要在部署集群前更改集群名称,请在相关 YAML 文件中编辑 Kafka 资源的 Kafka.metadata.name 属性。

默认集群名称和指定的 Kafka 版本

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    version: 2.8.0
    #...
    config:
      #...
      log.message.format.version: 2.8
      inter.broker.protocol.version: 2.8
  # ...
Copy to Clipboard Toggle word wrap

有关配置 Kafka 资源的更多信息,请参阅 OpenShift 中使用 AMQ Streams 中的 Kafka 集群配置

流程

  1. 创建和部署 临时或 持久 集群。

    对于开发或测试,您可能更喜欢使用临时集群。您可以随时使用持久性存储。

    • 创建和部署 临时 集群:

      oc apply -f examples/kafka/kafka-ephemeral.yaml
      Copy to Clipboard Toggle word wrap
    • 创建和部署 持久 集群:

      oc apply -f examples/kafka/kafka-persistent.yaml
      Copy to Clipboard Toggle word wrap
  2. 验证 Kafka 集群是否已成功部署:

    oc get deployments
    Copy to Clipboard Toggle word wrap

5.1.2.2. 使用 Cluster Operator 部署主题 Operator

此流程描述了如何使用 Cluster Operator 部署 Topic Operator。

您可以将 Kafka 资源的 principal Operator 属性配置为包含 topicOperator。默认情况下,Tpic Operator 监视 Kafka 集群部署命名空间中的 KafkaTopics

如果要将 Topic Operator 与不由 AMQ Streams 管理的 Kafka 集群搭配使用,则必须将 Topic Operator 部署为独立组件

有关配置 实体Operator 和 topicOperator 属性的更多信息,请参阅 使用 AMQ Streams 中的 OpenShift 指南中配置 Entity Operator

流程

  1. 编辑 Kafka 资源的 principal Operator 属性,使其包含 topicOperator:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      #...
      entityOperator:
        topicOperator: {}
        userOperator: {}
    Copy to Clipboard Toggle word wrap
  2. 使用 EntityTopicOperatorSpec 模式参考 中所述的属性配置 Topic Operator spec

    如果您希望所有属性都使用其默认值,请使用空对象({})。

  3. 创建或更新资源:

    使用 oc apply:

    oc apply -f <your-file>
    Copy to Clipboard Toggle word wrap

5.1.2.3. 使用 Cluster Operator 部署 User Operator

此流程描述了如何使用 Cluster Operator 部署 User Operator。

您可以将 Kafka 资源的 principal Operator 属性配置为包含 userOperator。默认情况下,User Operator 在 Kafka 集群部署的命名空间中监视 KafkaUsers

如果要将 User Operator 与不由 AMQ Streams 管理的 Kafka 集群搭配使用,您必须将 User Operator 部署为独立组件

有关配置 实体Operator 和 userOperator 属性的更多信息,请参阅 使用 AMQ Streams 中的 OpenShift 指南中配置 Entity Operator

流程

  1. 编辑 Kafka 资源的 principal Operator 属性,使其包含 userOperator:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      #...
      entityOperator:
        topicOperator: {}
        userOperator: {}
    Copy to Clipboard Toggle word wrap
  2. 使用 OpenShift 指南的使用 AMQ Streams 中的 EntityUserOperatorSpec schema 参考 中描述的属性配置 User Operator spec

    如果您希望所有属性都使用其默认值,请使用空对象({})。

  3. 创建或更新资源:

    oc apply -f <your-file>
    Copy to Clipboard Toggle word wrap

5.1.3. AMQ Streams Operator 的替代独立部署选项

您可以执行 Topic Operator 和 User Operator 的独立部署,而不是使用 Cluster Operator 部署这些操作器。如果要将 Topic Operator 和 User Operator 与不由 Cluster Operator 管理的 Kafka 集群搭配使用,请考虑独立部署。

在独立部署中,Kafka 可以在 OpenShift 外部运行。例如,您可能在使用 Kafka 作为受管服务。您可以调整独立操作器的部署配置,使其与 Kafka 集群的地址匹配。

注意

在独立部署中,Tpic Operator 和 User Operator 不会 连接到 AMQ Streams Kafka 集群(即,使用 Cluster Operator 部署的Kafka 集群)。即使建立与集群的连接,Operator 也不会正常工作。

5.1.3.1. 部署独立主题 Operator

此流程演示了如何将 Topic Operator 部署为主题管理的独立组件。您可以将独立 Topic Operator 与不由 Cluster Operator 管理的 Kafka 集群搭配使用。

独立部署可以与任何 Kafka 集群一起操作。

提供了独立的部署文件。配置 05-Deployment-strimzi-topic-operator.yaml 部署文件,以添加使 Topic Operator 连接到 Kafka 集群的环境变量。

先决条件

  • 您正在为要连接的 Topic Operator 运行 Kafka 集群。

流程

  1. 编辑 install/topic-operator/05-Deployment-strimzi-topic-operator.yaml 独立部署文件中的 env 属性。

    standalone Topic Operator 部署配置示例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-topic-operator
      labels:
        app: strimzi
    spec:
      # ...
      template:
        # ...
        spec:
          # ...
          containers:
            - name: strimzi-topic-operator
              # ...
              env:
                - name: STRIMZI_NAMESPACE 
    1
    
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS 
    2
    
                  value: my-kafka-bootstrap-address:9092
                - name: STRIMZI_RESOURCE_LABELS 
    3
    
                  value: "strimzi.io/cluster=my-cluster"
                - name: STRIMZI_ZOOKEEPER_CONNECT 
    4
    
                  value: my-cluster-zookeeper-client:2181
                - name: STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS 
    5
    
                  value: "18000"
                - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 
    6
    
                  value: "120000"
                - name: STRIMZI_TOPIC_METADATA_MAX_ATTEMPTS 
    7
    
                  value: "6"
                - name: STRIMZI_LOG_LEVEL 
    8
    
                  value: INFO
                - name: STRIMZI_TLS_ENABLED 
    9
    
                  value: "false"
                - name: STRIMZI_JAVA_OPTS 
    10
    
                  value: "-Xmx=512M -Xms=256M"
                - name: STRIMZI_JAVA_SYSTEM_PROPERTIES 
    11
    
                  value: "-Djavax.net.debug=verbose -DpropertyName=value"
    Copy to Clipboard Toggle word wrap

    1
    用于监视 KafkaTopic 资源的 Topic Operator 的 OpenShift 命名空间。指定 Kafka 集群的命名空间。
    2
    bootstrap 代理地址的主机和端口对,用于发现并连接到 Kafka 集群中的所有代理。使用逗号分隔列表来指定两个或三个代理地址(如果服务器停机)。
    3
    用于标识由 Topic Operator 管理的 KafkaTopic 资源的标签选择器。
    4
    用于连接 ZooKeeper 集群的主机和端口对。这必须与您的 Kafka 集群使用的 ZooKeeper 集群相同。
    5
    ZooKeeper 会话超时,以毫秒为单位。默认值为 18000( 18 秒)。
    6
    定期协调之间的间隔,以毫秒为单位。默认值为 120000( 2 分钟)。
    7
    从 Kafka 获取主题元数据的尝试数量。每次尝试之间的时间都定义为指数回退。如果因为分区或副本数量而需要更多时间,请考虑增加这个值。默认值为 6 个 尝试。
    8
    用于打印日志消息的级别。您可以将级别设置为 ERROR、WARN INGINFODEBUGTRACE
    9
    对与 Kafka 代理的加密通信启用 TLS 支持。
    10
    (可选)运行 Topic Operator 的 JVM 使用的 Java 选项。
    11
    (可选)为 Topic Operator 设置的调试(-D)选项。
  2. 如果您使用 STRIMZI_TLS_ENABLED 环境变量启用了 TLS,请指定用于验证与 Kafka 集群连接的密钥存储和信任存储。

    TLS 配置示例

    # ....
    env:
      - name: STRIMZI_TRUSTSTORE_LOCATION 
    1
    
        value: "/path/to/truststore.p12"
      - name: STRIMZI_TRUSTSTORE_PASSWORD 
    2
    
        value: "TRUSTSTORE-PASSWORD"
      - name: STRIMZI_KEYSTORE_LOCATION 
    3
    
        value: "/path/to/keystore.p12"
      - name: STRIMZI_KEYSTORE_PASSWORD 
    4
    
        value: "KEYSTORE-PASSWORD"
    # ..."
    Copy to Clipboard Toggle word wrap

    1
    truststore 包含证书颁发机构的公钥(ca.crt)值,用于为 TLS 客户端身份验证签署新用户证书。
    2
    访问信任存储的密码。
    3
    密钥存储包含证书颁发机构的私钥(ca.key),用于为 TLS 客户端身份验证签名新用户证书。
    4
    用于访问密钥存储的密码。
  3. 部署独立主题 Operator。

    oc create -f install/topic-operator
    Copy to Clipboard Toggle word wrap
  4. 验证独立 Topic Operator 是否已成功部署。

    oc describe deployment strimzi-topic-operator
    Copy to Clipboard Toggle word wrap

    Replicas 条目显示 1 可用 时,会部署独立 Topic Operator。

    注意

    如果您与 OpenShift 集群的连接较慢,并且之前没有下载 Topic Operator 镜像,则部署可能会出现延迟。

5.1.3.2. 部署 standalone User Operator

此流程演示了如何将 User Operator 部署为用户管理的独立组件。您可以将独立 User Operator 与不由 Cluster Operator 管理的 Kafka 集群搭配使用。

独立部署可以与任何 Kafka 集群一起操作。

提供了独立的部署文件。编辑 05-Deployment-strimzi-user-operator.yaml 部署文件,以添加使 User Operator 连接到 Kafka 集群的环境变量。

先决条件

  • 您为 User Operator 运行 Kafka 集群以连接。

流程

  1. 编辑 install/user-operator/05-Deployment-strimzi-user-operator.yaml 独立部署文件中的以下 env 属性。

    standalone User Operator 部署配置示例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-user-operator
      labels:
        app: strimzi
    spec:
      # ...
      template:
        # ...
        spec:
          # ...
          containers:
            - name: strimzi-user-operator
              # ...
              env:
                - name: STRIMZI_NAMESPACE 
    1
    
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS 
    2
    
                  value: my-kafka-bootstrap-address:9092
                - name: STRIMZI_CA_CERT_NAME 
    3
    
                  value: my-cluster-clients-ca-cert
                - name: STRIMZI_CA_KEY_NAME 
    4
    
                  value: my-cluster-clients-ca
                - name: STRIMZI_ZOOKEEPER_CONNECT 
    5
    
                  value: my-cluster-zookeeper-client:2181
                - name: STRIMZI_LABELS 
    6
    
                  value: "strimzi.io/cluster=my-cluster"
                - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 
    7
    
                  value: "120000"
                - name: STRIMZI_ZOOKEEPER_CONNECT 
    8
    
                  value: my-cluster-zookeeper-client:2181
                - name: STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS 
    9
    
                  value: "18000"
                - name: STRIMZI_LOG_LEVEL 
    10
    
                  value: INFO
                - name: STRIMZI_GC_LOG_ENABLED 
    11
    
                  value: "true"
                - name: STRIMZI_CA_VALIDITY 
    12
    
                  value: "365"
                - name: STRIMZI_CA_RENEWAL 
    13
    
                  value: "30"
                - name: STRIMZI_JAVA_OPTS 
    14
    
                  value: "-Xmx=512M -Xms=256M"
                - name: STRIMZI_JAVA_SYSTEM_PROPERTIES 
    15
    
                  value: "-Djavax.net.debug=verbose -DpropertyName=value"
    Copy to Clipboard Toggle word wrap

    1
    用于监视 KafkaUser 资源的 User Operator 的 OpenShift 命名空间。只能指定一个命名空间。
    2
    bootstrap 代理地址的主机和端口对,用于发现并连接到 Kafka 集群中的所有代理。使用逗号分隔列表来指定两个或三个代理地址(如果服务器停机)。
    3
    包含证书颁发机构的公钥(ca.crt)值的 OpenShift Secret,为 TLS 客户端身份验证签署新用户证书。
    4
    包含证书颁发机构的私钥(ca.key)值的 OpenShift Secret,为 TLS 客户端身份验证签署新用户证书。
    5
    用于连接 ZooKeeper 集群的主机和端口对。这必须与您的 Kafka 集群使用的 ZooKeeper 集群相同。
    6
    用于标识由 User Operator 管理的 KafkaUser 资源的标签选择器。
    7
    定期协调之间的间隔,以毫秒为单位。默认值为 120000( 2 分钟)。
    8
    用于连接 ZooKeeper 集群的主机和端口对。这必须与您的 Kafka 集群使用的 ZooKeeper 集群相同。
    9
    ZooKeeper 会话超时,以毫秒为单位。默认值为 18000( 18 秒)。
    10
    用于打印日志消息的级别。您可以将级别设置为 ERROR、WARN INGINFODEBUGTRACE
    11
    启用垃圾回收(GC)日志。默认值为 true
    12
    证书颁发机构的有效期限。默认值为 365 天。
    13
    证书授权机构的续订期限。续订期的测量从当前证书到期之日后方进行。默认是在旧证书过期前启动证书续订的 30 天。
    14
    (可选)运行 User Operator 的 JVM 使用的 Java 选项
    15
    (可选)为 User Operator 设置的调试(-D)选项
  2. 如果您使用 TLS 连接到 Kafka 集群,请指定用于验证连接的 secret。否则,请转到下一步。

    TLS 配置示例

    # ....
    env:
      - name: STRIMZI_CLUSTER_CA_CERT_SECRET_NAME 
    1
    
        value: my-cluster-cluster-cert
      - name: STRIMZI_EO_KEY_SECRET_NAME 
    2
    
        value: my-cluster-cluster-ca
    # ..."
    Copy to Clipboard Toggle word wrap

    1
    包含为 TLS 客户端身份验证签署 Kafka 代理证书的证书颁发机构的公钥(ca.crt)值的 OpenShift Secret
    2
    包含密钥存储(实体-operator_.p12)的 OpenShift Secret,以及用于对 Kafka 集群进行 TLS 身份验证的证书。Secret 还必须包含用于访问密钥存储的密码(hostname-operator_.password)。
  3. 部署 standalone User Operator。

    oc create -f install/user-operator
    Copy to Clipboard Toggle word wrap
  4. 验证 standalone User Operator 是否已成功部署。

    oc describe deployment strimzi-user-operator
    Copy to Clipboard Toggle word wrap

    Replicas 条目显示 1 可用 时,部署 standalone User Operator。

    注意

    如果您与 OpenShift 集群的连接较慢并且之前没有下载用户 Operator 镜像,则部署时可能会出现延迟。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat