搜索

第 11 章 使用 User Operator 管理 Kafka 用户

download PDF

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

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

11.1. 配置 Kafka 用户

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

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

例如:

  • oc apply -f <user_config_file>
  • oc delete KafkaUser <user_name>

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

先决条件

  • 正在运行的 Kafka 集群使用 mTLS 身份验证和 TLS 加密配置 Kafka 代理监听程序。
  • 正在运行的用户 Operator (通常使用 Entity Operator 部署)。

流程

  1. 配置 KafkaUser 资源。

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

    Kafka 用户配置示例

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaUser
    metadata:
      name: my-user-1
      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: "*"

  2. 在 OpenShift 中创建 KafkaUser 资源。

    oc apply -f <user_config_file>
  3. 等待用户的就绪状态更改为 True

    oc get kafkausers -o wide -w -n <namespace>

    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

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

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

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

    oc get kafkausers my-user-2 -o yaml

    具有 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

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

    用于简单授权的 Kafka 配置

      apiVersion: kafka.strimzi.io/v1beta2
      kind: Kafka
      metadata:
        name: my-cluster
      spec:
        kafka:
          # ...
          authorization:
            type: simple

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

    oc get kafkausers my-user-2 -o wide -w -n <namespace>

    用户的状态更新

    NAME       CLUSTER     AUTHENTICATION  AUTHORIZATION READY
    my-user-2  my-cluster  tls             simple        True

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

    oc get kafkausers my-user-2 -o yaml

    具有 READY 状态的用户的详情

    # ...
    status:
      conditions:
      - lastTransitionTime: "2022-06-10T10:33:40.166846Z"
        status: "True"
        type: Ready

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.