4장. OpenShift 클러스터 외부에서 Kafka 액세스
외부 리스너를 사용하여 AMQ Streams Kafka 클러스터를 OpenShift 환경 외부의 클라이언트에 노출합니다.
외부 리스너 구성에 Kafka를 노출할 연결 유형을 지정합니다.
-
NodePort 유형NodePort에서서비스사용 -
LoadBalancer는Loadbalancer유형서비스를사용합니다. -
Ingress는 KubernetesIngress및 Kubernetes용 NGINX Ingress 컨트롤러를사용합니다. -
경로는OpenShift경로와 HAProxy 라우터를 사용합니다.
리스너 구성에 대한 자세한 내용은 GenericKafkaListener 스키마 참조를 참조하십시오.
각 연결 유형의 장단점에 대해 자세히 알아보려면 Strimzi에서 Apache Kafka 액세스를 참조하십시오.
경로는 OpenShift에서만 지원됩니다.
4.1. 노드 포트를 사용하여 Kafka에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 노드 포트를 사용하여 외부 클라이언트에서 AMQ Streams Kafka 클러스터에 액세스하는 방법을 설명합니다.
브로커에 연결하려면 Kafka 부트스트랩 주소 의 호스트 이름 및 포트 번호와 인증에 사용되는 인증서가 필요합니다.
사전 요구 사항
- OpenShift 클러스터
- 실행중인 Cluster Operator
절차
nodeport유형으로 설정된 외부 리스너를 사용하여Kafka리소스를 구성합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NodePort유형 서비스는 각 Kafka 브로커 및 외부 부트스트랩 서비스에 대해 생성됩니다. 부트스트랩 서비스는 외부 트래픽을 Kafka 브로커로 라우팅합니다. 연결에 사용되는 노드 주소는 Kafka 사용자 정의 리소스의상태로전파됩니다.kafka 브로커의 ID를 확인하는 클러스터 CA 인증서도 시크릿 <
cluster_name> -cluster-ca-cert에 생성됩니다.Kafka리소스의 상태에서 Kafka 클러스터에 액세스하는 데 사용할 수 있는 부트스트랩 주소를 검색합니다.oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="external")].bootstrapServers}{"\n"}'oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="external")].bootstrapServers}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 암호화가 활성화된 경우 브로커 인증 기관의 공개 인증서를 추출합니다.
oc get secret KAFKA-CLUSTER-NAME-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crtoc get secret KAFKA-CLUSTER-NAME-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka 클라이언트에서 추출된 인증서를 사용하여 TLS 연결을 구성합니다. 인증을 활성화한 경우 SASL 또는 TLS 인증도 구성해야 합니다.