6.7. Kafka 브리지 배포
Kafka 브리지는 HTTP 기반 클라이언트를 Kafka 클러스터와 통합하는 API를 제공합니다.
6.7.1. OpenShift 클러스터에 Kafka 브리지 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Cluster Operator를 사용하여 Kafka Bridge 클러스터를 OpenShift 클러스터에 배포하는 방법을 보여줍니다.
배포에서는 YAML 파일을 사용하여 KafkaBridge 리소스를 생성하는 사양을 제공합니다.
Apache Kafka의 스트림은 구성 파일 예제 를 제공합니다. 이 절차에서는 다음 예제 파일을 사용합니다.
-
examples/bridge/kafka-bridge.yaml
사전 요구 사항
프로세스
OpenShift 클러스터에 Kafka 브리지를 배포합니다.
oc apply -f examples/bridge/kafka-bridge.yaml
oc apply -f examples/bridge/kafka-bridge.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포 상태를 확인합니다.
oc get pods -n <my_cluster_operator_namespace>
oc get pods -n <my_cluster_operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에 배포 이름 및 준비 상태 표시
NAME READY STATUS RESTARTS my-bridge-bridge-<pod_id> 1/1 Running 0
NAME READY STATUS RESTARTS my-bridge-bridge-<pod_id> 1/1 Running 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-bridge는 Kafka Bridge 클러스터의 이름입니다.Pod ID는 생성된 각 pod를 식별합니다.
기본 배포를 사용하면 단일 Kafka Bridge Pod를 설치합니다.
READY는 ready/expected 복제본 수를 표시합니다.STATUS가Running으로 표시되면 배포가 성공적으로 수행됩니다.
6.7.2. 로컬 머신에 Kafka 브리지 서비스 노출 링크 복사링크가 클립보드에 복사되었습니다!
포트 전달을 사용하여 Apache Kafka Bridge 서비스의 스트림을 http://localhost:8080 의 로컬 머신에 노출합니다.
포트 전달은 개발 및 테스트 목적으로만 적합합니다.
프로세스
OpenShift 클러스터에 있는 포드 이름을 나열합니다.
oc get pods -o name pod/kafka-consumer # ... pod/my-bridge-bridge-<pod_id>
oc get pods -o name pod/kafka-consumer # ... pod/my-bridge-bridge-<pod_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 포트
8080의 Kafka 브리지 Pod에 연결합니다.oc port-forward pod/my-bridge-bridge-<pod_id> 8080:8080 &
oc port-forward pod/my-bridge-bridge-<pod_id> 8080:8080 &Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고로컬 시스템의 포트 8080이 이미 사용 중인 경우
8008과 같은 대체 HTTP 포트를 사용합니다.
이제 API 요청이 로컬 머신의 포트 8080에서 Kafka Bridge Pod의 포트 8080으로 전달됩니다.
6.7.3. OpenShift 외부에서 Kafka 브리지 액세스 링크 복사링크가 클립보드에 복사되었습니다!
배포 후 동일한 OpenShift 클러스터에서 실행되는 애플리케이션에서만 Apache Kafka 브리지의 Streams에 액세스할 수 있습니다. 이러한 애플리케이션은 < kafka_bridge_name> -bridge-service 서비스를 사용하여 API에 액세스합니다.
OpenShift 클러스터 외부에서 실행 중인 애플리케이션에 Kafka 브리지를 액세스하려면 다음 기능 중 하나를 생성하여 수동으로 노출할 수 있습니다.
-
LoadBalancer또는NodePort유형 서비스 -
Ingress리소스(Kubernetes만 해당) - OpenShift 경로(OpenShift만 해당)
서비스를 생성하려면 < kafka_bridge_name> -bridge-service 서비스 의 선택기 에서 레이블을 사용하여 서비스에서 트래픽을 라우팅할 Pod를 구성합니다.
# ...
selector:
strimzi.io/cluster: kafka-bridge-name
strimzi.io/kind: KafkaBridge
#...
# ...
selector:
strimzi.io/cluster: kafka-bridge-name
strimzi.io/kind: KafkaBridge
#...
- 1
- OpenShift 클러스터의 Kafka Bridge 사용자 정의 리소스의 이름입니다.
6.7.4. Kafka Bridge 클러스터 리소스 목록 링크 복사링크가 클립보드에 복사되었습니다!
다음 리소스는 OpenShift 클러스터의 Cluster Operator에 의해 생성됩니다.
- <bridge_cluster_name>-bridge
- Kafka Bridge 작업자 노드 Pod를 생성합니다.
- <bridge_cluster_name>-bridge-service
- Kafka Bridge 클러스터의 REST 인터페이스를 노출하는 서비스입니다.
- <bridge_cluster_name>-bridge-config
- Kafka Bridge ancillary 구성이 포함되어 Kafka 브로커 Pod를 통해 볼륨으로 마운트되는 ConfigMap입니다.
- <bridge_cluster_name>-bridge
- Kafka Bridge 작업자 노드에 대해 구성된 Pod 중단 예산입니다.