2.6. Kafka Bridge 集群配置
使用 KafkaBridge 资源配置 Kafka Bridge 部署。Kafka Bridge 提供了一个 API,用于将基于 HTTP 的客户端与 Kafka 集群集成。
第 6.2.114 节 “KafkaBridge 模式参考” 描述 KafkaBridge 资源的完整模式。
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 指南:
流程
编辑
KafkaBridge资源的spec属性。您可以配置的属性显示在以下示例配置中:
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaBridge metadata: name: my-bridge spec: replicas: 31 bootstrapServers: <cluster_name>-cluster-kafka-bootstrap:90922 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:latest13 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"- 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-512 或 PLAIN。默认情况下,Kafka Bridge 在没有身份验证的情况下连接到 Kafka 代理。
- 5
- 对 Kafka 代理的 HTTP 访问。
- 6
- CORS 访问指定所选资源和访问方法。请求中的附加 HTTP 标头描述了允许访问 Kafka 集群的原始卷。
- 7
- 8
- 9
- 10
- 指定 Kafka Bridge 日志记录器和日志级别 直接(
内联)或通过 ConfigMap 间接添加(外部)。自定义 ConfigMap 必须放在log4j.properties或log4j2.properties键下。对于 Kafka Bridge 日志记录器,您可以将日志级别设置为 INFO、ERROR、WARN、TRACE、DEBUG、FATAL 或 OFF。 - 11
- JVM 配置选项,用于优化运行 Kafka Bridge 的虚拟机(VM)的性能。
- 12
- 使用 HealthCheck 可以知道何时重启一个容器(存活度)以及何时一个容器可以开始接受流量(就绪度)。
- 13
- 可选: 容器镜像配置,只在特殊情况下建议使用。
- 14
- 模板自定义.这里的 pod 使用反关联性调度,因此 pod 不会调度到具有相同主机名的节点。
- 15
- 为分布式追踪设置环境变量。
创建或更新资源:
oc apply -f KAFKA-BRIDGE-CONFIG-FILE
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。