2.6. Kafka 브리지 클러스터 구성
KafkaBridge 리소스를 사용하여 Kafka 브리지 배포를 구성합니다. Kafka 브리지는 HTTP 기반 클라이언트를 Kafka 클러스터와 통합하는 API를 제공합니다.
4.2.118절. “KafkaBridge 스키마 참조” KafkaBridge 리소스의 전체 스키마를 설명합니다.
2.6.1. Kafka 브리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 브리지를 사용하여 Kafka 클러스터에 대한 HTTP 기반 요청을 수행합니다.
KafkaBridge 리소스의 속성을 사용하여 Kafka Bridge 배포를 구성합니다.
클라이언트 소비자 요청이 다른 Kafka Bridge 인스턴스에서 처리할 때 발생하는 문제를 방지하려면 올바른 Kafka 브리지 인스턴스로 요청이 라우팅되도록 주소 기반 라우팅을 사용해야 합니다. 또한 각 독립 Kafka 브리지 인스턴스에는 복제본이 있어야 합니다. Kafka 브리지 인스턴스에는 다른 인스턴스와 공유되지 않는 자체 상태가 있습니다.
사전 요구 사항
- 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: OTEL_SERVICE_NAME value: my-otel-service - name: OTEL_EXPORTER_OTLP_ENDPOINT value: "http://otlp-host:4317" tracing: type: opentelemetry16 - 1
- 2
- 대상 Kafka 클러스터에 연결하기 위한 부트스트랩 서버 입니다. Kafka 클러스터의 이름을 < cluster_name>으로 사용합니다.
- 3
- 소스 Kafka 클러스터의 X.509 형식으로 저장되는 TLS 인증서의 키 이름을 사용한 TLS 암호화 입니다. 인증서가 동일한 보안에 저장된 경우 여러 번 나열할 수 있습니다.
- 4
- mTLS,토큰 기반 OAuth, SASL 기반 SCRAM -256/SCRAM-SHA -512, 또는 PLAIN 으로 지정된 Kafka Bridge 클러스터에 대한 인증입니다. 기본적으로 Kafka 브리지는 인증 없이 Kafka 브로커에 연결합니다.
- 5
- Kafka 브로커에 대한 HTTP 액세스
- 6
- CORS 액세스는 선택한 리소스 및 액세스 방법을 지정합니다. 요청의 추가 HTTP 헤더는 Kafka 클러스터에 액세스할 수 있는 출처를 설명합니다.
- 7
- 소비자 구성 옵션.
- 8
- 생산자 구성 옵션.
- 9
- 10
- 지정된 Kafka Bridge 로거 및 로그 수준이 ConfigMap을 통해 직접(
인라인) 또는 간접적으로(외부)합니다. 사용자 지정 ConfigMap은log4j.properties또는log4j2.properties키에 배치해야 합니다. Kafka 브리지 로거의 경우 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다. - 11
- Kafka 브리지 를 실행하는 VM(가상 머신)의 성능을 최적화하는 JVM 구성 옵션입니다.
- 12
- 컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검 입니다.
- 13
- 선택 사항 : 컨테이너 이미지 구성.이는 특별한 경우에만 권장됩니다.
- 14
- 템플릿 사용자 지정. 여기에서 Pod는 유사성 방지로 예약되므로 Pod는 동일한 호스트 이름이 있는 노드에 예약되지 않습니다.
- 15
- 환경 변수는 분산 추적을 위해 설정됩니다.
- 16
- OpenTelemetry를 사용하여 분산 추적을 활성화합니다.
리소스를 생성하거나 업데이트합니다.
oc apply -f KAFKA-BRIDGE-CONFIG-FILE
2.6.2. Kafka 브리지 클러스터 리소스 목록 링크 복사링크가 클립보드에 복사되었습니다!
다음 리소스는 OpenShift 클러스터의 Cluster Operator에 의해 생성됩니다.
- bridge-cluster-name-bridge
- Kafka 브리지 작업자 노드 Pod를 생성하는 데 필요한 배포입니다.
- bridge-cluster-name-bridge-service
- Kafka 브리지 클러스터의 REST 인터페이스를 노출하는 서비스입니다.
- bridge-cluster-name-bridge-config
- Kafka 브리지 보조 구성이 포함되어 있고 Kafka 브로커 Pod에서 볼륨으로 마운트되는 ConfigMap입니다.
- bridge-cluster-name-bridge
- Kafka 브리지 작업자 노드에 대해 구성된 Pod 중단 예산.