2.6. Kafka Bridge 集群配置


使用 KafkaBridge 资源配置 Kafka Bridge 部署。Kafka Bridge 提供了一个 API,用于将基于 HTTP 的客户端与 Kafka 集群集成。

第 12.2.114 节 “KafkaBridge 模式参考” 描述 KafkaBridge 资源的完整 schema。

2.6.1. 配置 Kafka Bridge

使用 Kafka Bridge 向 Kafka 集群发出基于 HTTP 的请求。

使用 KafkaBridge 资源的属性来配置 Kafka Bridge 部署。

为了防止,当客户端消费者请求由不同的 Kafka Bridge 实例处理时,必须使用基于地址的路由来确保请求路由到正确的 Kafka Bridge 实例。另外,每个独立的 Kafka Bridge 实例都必须有副本。Kafka Bridge 实例具有自己的状态,它不与其他实例共享。

先决条件

  • 一个 OpenShift 集群
  • 正在运行的 Cluster Operator

有关运行的信息 ,请参阅 OpenShift 中的部署和升级 AMQ Streams 指南:

流程

  1. 编辑 KafkaBridge 资源的 spec 属性。

    您可以在以下示例配置中显示您可以配置的属性:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaBridge
    metadata:
      name: my-bridge
    spec:
      replicas: 3 
    1
    
      bootstrapServers: <cluster_name>-cluster-kafka-bootstrap:9092 
    2
    
      tls: 
    3
    
        trustedCertificates:
          - secretName: my-cluster-cluster-cert
            certificate: ca.crt
          - secretName: my-cluster-cluster-cert
            certificate: ca2.crt
      authentication: 
    4
    
        type: tls
        certificateAndKey:
          secretName: my-secret
          certificate: public.crt
          key: private.key
      http: 
    5
    
        port: 8080
        cors: 
    6
    
          allowedOrigins: "https://strimzi.io"
          allowedMethods: "GET,POST,PUT,DELETE,OPTIONS,PATCH"
      consumer: 
    7
    
        config:
          auto.offset.reset: earliest
      producer: 
    8
    
        config:
          delivery.timeout.ms: 300000
      resources: 
    9
    
        requests:
          cpu: "1"
          memory: 2Gi
        limits:
          cpu: "2"
          memory: 2Gi
      logging: 
    10
    
        type: inline
        loggers:
          logger.bridge.level: "INFO"
          # enabling DEBUG just for send operation
          logger.send.name: "http.openapi.operation.send"
          logger.send.level: "DEBUG"
      jvmOptions: 
    11
    
        "-Xmx": "1g"
        "-Xms": "1g"
      readinessProbe: 
    12
    
        initialDelaySeconds: 15
        timeoutSeconds: 5
      livenessProbe:
        initialDelaySeconds: 15
        timeoutSeconds: 5
      image: my-org/my-image:latest 
    13
    
      template: 
    14
    
        pod:
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                - labelSelector:
                    matchExpressions:
                      - key: application
                        operator: In
                        values:
                          - postgresql
                          - mongodb
                  topologyKey: "kubernetes.io/hostname"
        bridgeContainer: 
    15
    
          env:
            - name: JAEGER_SERVICE_NAME
              value: my-jaeger-service
            - name: JAEGER_AGENT_HOST
              value: jaeger-agent-name
            - name: JAEGER_AGENT_PORT
              value: "6831"
    Copy to Clipboard Toggle word wrap
    1
    2
    用于连接目标 Kafka 集群的 Bootstrap 服务器。使用 Kafka 集群的名称作为 < cluster_name>
    3
    TLS 加密,使用密钥名称,其中 TLS 证书存储为源 Kafka 集群的 X.509 格式。如果证书存储在同一 secret 中,可以多次列出它。
    4
    Kafka Bridge 集群的身份验证,它被指定为 mTLS、基于令牌的OAuth、基于 SASL 的 SCRAM-SHA-256/SCRAM-SHA-512PLAIN。默认情况下,Kafka Bridge 会在没有身份验证的情况下连接到 Kafka 代理。
    5
    对 Kafka 代理的 HTTP 访问
    6
    CORS 访问指定所选资源和访问方法。请求中的其他 HTTP 标头描述了允许访问 Kafka 集群的来源。
    7
    8
    9
    用于保留 支持的资源、当前 cpu 和内存 的请求,以及指定可消耗的最大资源数量。
    10
    指定 Kafka Bridge 日志记录器和日志级别 直接(内联)或通过 ConfigMap 间接添加(外部)。自定义 ConfigMap 必须放在 log4j.propertieslog4j2.properties 键下。对于 Kafka Bridge 日志记录器,您可以将日志级别设置为 INFO、ERROR、WARN、TRACE、DEBUG、FATAL 或 OFF。
    11
    JVM 配置选项,用于优化运行 Kafka Bridge 的虚拟机(VM)的性能。
    12
    状况检查,了解何时重启容器(持续)以及容器是否可以接受流量(就绪状态)。
    13
    可选: 容器镜像配置,这只在特殊情况下建议。
    14
    模板自定义。这里调度了带有反关联性的 pod,因此不会将 pod 调度到具有相同主机名的节点。
    15
    为分布式追踪设置环境变量。
  2. 创建或更新资源:

    oc apply -f KAFKA-BRIDGE-CONFIG-FILE
    Copy to Clipboard Toggle word wrap

2.6.2. Kafka Bridge 集群资源列表

以下资源由 OpenShift 集群中的 Cluster Operator 创建:

bridge-cluster-name-bridge
用于创建 Kafka Bridge worker 节点 pod 的部署。
bridge-cluster-name-bridge-service
此服务公开 Kafka Bridge 集群的 REST 接口。
bridge-cluster-name-bridge-config
包含 Kafka Bridge 辅助配置的 ConfigMap,并由 Kafka 代理 pod 挂载为卷。
bridge-cluster-name-bridge
为 Kafka Bridge worker 节点配置的 Pod Disruption Budget。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat