8.9. Kafka 브리지 구성
KafkaBridge 사용자 정의 리소스의 spec 속성을 업데이트하여 Kafka Bridge 배포를 구성합니다.
클라이언트 소비자 요청이 다른 Kafka Bridge 인스턴스에서 처리할 때 발생하는 문제를 방지하려면 요청이 올바른 Kafka Bridge 인스턴스로 라우팅되도록 주소 기반 라우팅을 사용해야 합니다. 또한 각 독립적인 Kafka Bridge 인스턴스에는 복제본이 있어야 합니다. Kafka 브리지 인스턴스에는 다른 인스턴스와 공유되지 않는 자체 상태가 있습니다.
Kafka Bridge 클러스터 구성 옵션에 대한 자세한 내용은 AMQ Streams 사용자 정의 리소스 API 참조를 참조하십시오.
KafkaBridge 사용자 정의 리소스 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
name: my-bridge
spec:
replicas: 3
bootstrapServers: <cluster_name>-cluster-kafka-bootstrap:9092
tls:
trustedCertificates:
- secretName: my-cluster-cluster-cert
certificate: ca.crt
- secretName: my-cluster-cluster-cert
certificate: ca2.crt
authentication:
type: tls
certificateAndKey:
secretName: my-secret
certificate: public.crt
key: private.key
http:
port: 8080
cors:
allowedOrigins: "https://strimzi.io"
allowedMethods: "GET,POST,PUT,DELETE,OPTIONS,PATCH"
consumer:
config:
auto.offset.reset: earliest
producer:
config:
delivery.timeout.ms: 300000
resources:
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "2"
memory: 2Gi
logging:
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:
"-Xmx": "1g"
"-Xms": "1g"
readinessProbe:
initialDelaySeconds: 15
timeoutSeconds: 5
livenessProbe:
initialDelaySeconds: 15
timeoutSeconds: 5
image: my-org/my-image:latest
template:
pod:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: application
operator: In
values:
- postgresql
- mongodb
topologyKey: "kubernetes.io/hostname"
bridgeContainer:
env:
- name: OTEL_SERVICE_NAME
value: my-otel-service
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://otlp-host:4317"
tracing:
type: opentelemetry
- 1
- 복제본 노드 수입니다.
- 2
- 대상 Kafka 클러스터에 연결하기 위한 부트스트랩 서버입니다. Kafka 클러스터 이름을 < cluster_name>으로 사용합니다.
- 3
- TLS 인증서가 소스 Kafka 클러스터의 X.509 형식으로 저장되는 키 이름이 있는 TLS 암호화입니다. 인증서가 동일한 시크릿에 저장된 경우 여러 번 나열할 수 있습니다.
- 4
- mTLS, 토큰 기반 OAuth, SASL 기반 SCRAM-SHA-256/SCRAM-SHA-512 또는 PLAIN으로 지정된 Kafka Bridge 클러스터에 대한 인증입니다. 기본적으로 Kafka 브리지는 인증 없이 Kafka 브로커에 연결합니다.
- 5
- Kafka 브로커에 대한 HTTP 액세스
- 6
- CORS 액세스는 선택한 리소스 및 액세스 방법을 지정합니다. 요청의 추가 HTTP 헤더는 Kafka 클러스터에 액세스할 수 있는 원본을 설명합니다.
- 7
- 소비자 구성 옵션.
- 8
- 생산자 구성 옵션.
- 9
- 지원되는 리소스 예약, 현재
cpu및memory요청, 사용할 수 있는 최대 리소스를 지정하기 위한 제한입니다. - 10
- 지정된 Kafka 브리지 로거 및 로그 수준이 직접(
인라인) 또는 ConfigMap을 통해 간접적으로(외부)됩니다. 사용자 정의 Log4j 구성은 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를 사용하여 분산 추적을 활성화합니다.