7.4. 使用 User Operator


当您使用 KafkaUser 资源创建、修改或删除用户时,用户 Operator 可确保这些更改在 Kafka 集群中反映出来。

有关 KafkaUser 资源的更多信息,请参阅 KafkaUser 模式参考

部署 User Operator

您可以使用 Cluster Operator 或独立 Operator 部署 User Operator。您可以在不由 Cluster Operator 管理的 Kafka 集群中使用独立 User Operator。

有关部署说明,请查看以下操作:

重要

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

7.4.1. 配置 Kafka 用户

使用 KafkaUser 资源的属性来配置 Kafka 用户。

您可以使用 oc apply 来创建或修改用户,oc delete 来删除现有的用户。

例如:

  • oc apply -f <user_config_file>
  • oc delete KafkaUser &lt ;user_name>

用户代表 Kafka 客户端。配置 Kafka 用户时,您可以启用客户端访问 Kafka 所需的用户身份验证和授权机制。所用的机制必须与对应的 Kafka 配置匹配。有关使用 KafkaKafkaUser 资源保护对 Kafka 代理的访问的更多信息,请参阅 保护对 Kafka 代理的访问

先决条件

流程

  1. 配置 KafkaUser 资源。

    这个示例使用 ACL 指定 mTLS 验证和简单的授权。

    Kafka 用户配置示例

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaUser
    metadata:
      name: my-user
      labels:
        strimzi.io/cluster: my-cluster
    spec:
      authentication:
        type: tls
      authorization:
        type: simple
        acls:
          # Example consumer Acls for topic my-topic using consumer group my-group
          - resource:
              type: topic
              name: my-topic
              patternType: literal
            operations:
              - Describe
              - Read
            host: "*"
          - resource:
              type: group
              name: my-group
              patternType: literal
            operations:
              - Read
            host: "*"
          # Example Producer Acls for topic my-topic
          - resource:
              type: topic
              name: my-topic
              patternType: literal
            operations:
              - Create
              - Describe
              - Write
            host: "*"
    Copy to Clipboard Toggle word wrap

  2. 在 OpenShift 中创建 KafkaUser 资源。

    oc apply -f <user_config_file>
    Copy to Clipboard Toggle word wrap
  3. 等待用户就绪状态更改为 True

    oc get kafkausers -o wide -w -n <namespace>
    Copy to Clipboard Toggle word wrap

    Kafka 用户状态

    NAME       CLUSTER     AUTHENTICATION  AUTHORIZATION READY
    my-user-1  my-cluster  tls             simple        True
    my-user-2  my-cluster  tls             simple
    my-user-3  my-cluster  tls             simple        True
    Copy to Clipboard Toggle word wrap

    READY 输出显示为 True 时,用户创建成功。

  4. 如果 READY 列留空,则从资源 YAML 或 User Operator 日志中获取有关状态的更多详细信息。

    消息提供有关当前状态的原因的详细信息。

    oc get kafkausers my-user-2 -o yaml
    Copy to Clipboard Toggle word wrap

    有关具有 NotReady 状态的用户的详情

    # ...
    status:
      conditions:
      - lastTransitionTime: "2022-06-10T10:07:37.238065Z"
        message: Simple authorization ACL rules are configured but not supported in the
          Kafka cluster configuration.
        reason: InvalidResourceException
        status: "True"
        type: NotReady
    Copy to Clipboard Toggle word wrap

    在本例中,用户未就绪的原因是,因为 Kafka 配置中没有启用简单的授权。

    用于简单授权的 Kafka 配置

      apiVersion: kafka.strimzi.io/v1beta2
      kind: Kafka
      metadata:
        name: my-cluster
      spec:
        kafka:
          # ...
          authorization:
            type: simple
    Copy to Clipboard Toggle word wrap

    在更新 Kafka 配置后,其状态会显示用户已就绪。

    oc get kafkausers my-user-2 -o wide -w -n <namespace>
    Copy to Clipboard Toggle word wrap

    用户的状态更新

    NAME       CLUSTER     AUTHENTICATION  AUTHORIZATION READY
    my-user-2  my-cluster  tls             simple        True
    Copy to Clipboard Toggle word wrap

    获取详细信息不会显示任何信息。

    oc get kafkausers my-user-2 -o yaml
    Copy to Clipboard Toggle word wrap

    有关具有 READY 状态的用户的详情

    # ...
    status:
      conditions:
      - lastTransitionTime: "2022-06-10T10:33:40.166846Z"
        status: "True"
        type: Ready
    Copy to Clipboard Toggle word wrap

7.4.2. 使用资源请求和限值配置 User Operator

您可以将资源(如 CPU 和内存)分配给 User Operator,并为其消耗的资源数量设置限值。

先决条件

  • Cluster Operator 正在运行。

流程

  1. 根据需要,在编辑器中更新 Kafka 集群配置:

    oc edit kafka MY-CLUSTER
    Copy to Clipboard Toggle word wrap
  2. Kafka 资源中的 spec.entityOperator.userOperator.resources 属性中,为 User Operator 设置资源请求和限值。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    spec:
      # Kafka and ZooKeeper sections...
      entityOperator:
        userOperator:
          resources:
            requests:
              cpu: "1"
              memory: 500Mi
            limits:
              cpu: "1"
              memory: 500Mi
    Copy to Clipboard Toggle word wrap

    保存文件并退出编辑器。Cluster Operator 会自动应用更改。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat