4장. Kafka 클러스터에 액세스하기 위한 OpenShift 경로 생성
OpenShift 경로를 생성하여 OpenShift 외부에서 Kafka 클러스터에 액세스합니다.
다음 절차에서는 OpenShift 환경 외부의 클라이언트에 Kafka 클러스터를 노출하는 방법을 설명합니다. Kafka 클러스터가 노출된 후 외부 클라이언트는 Kafka 클러스터에서 메시지를 생성하고 사용할 수 있습니다.
OpenShift 경로를 생성하기 위해 OpenShift에 설치된 Kafka 클러스터의 구성에 경로 리스너가 추가됩니다.
OpenShift 경로 주소에는 Kafka 클러스터의 이름, 리스너 이름 및 생성된 네임스페이스의 이름이 포함됩니다. 예를 들어 my-cluster-kafka-listener1-bootstrap-amq-streams-kafka ( <cluster_name> -kafka- <listener_name> -bootstrap- <namespace>). 주소의 전체 길이가 최대 63자 제한을 초과하지 않도록 주의하십시오.
사전 요구 사항
- OpenShift에서 Kafka 클러스터를 생성 했습니다.
-
인증서를 관리하려면 OpenJDK
keytool이 필요합니다. -
(선택 사항) OpenShift
ocCLI 툴을 사용하여 일부 단계를 수행할 수 있습니다.
절차
- 웹 콘솔에서 Operator > 설치된 Operator 페이지로 이동하여 Red Hat Integration - AMQ Streams 를 선택하여 Operator 세부 정보를 표시합니다.
- Kafka 페이지를 선택하여 설치된 Kafka 클러스터를 표시합니다.
세부 정보를 보려면 구성 중인 Kafka 클러스터의 이름을 클릭합니다.
이 예제에서는
my-cluster라는 Kafka 클러스터를 사용합니다.-
Kafka 클러스터
my-cluster의 YAML 페이지를 선택합니다. 경로 리스너 구성을 추가하여
listener1이라는 OpenShift 경로를 생성합니다.리스너 구성을
경로유형으로 설정해야 합니다. Kafka 구성의 리스너 아래에리스너구성을 추가합니다.외부 경로 리스너 구성
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: amq-streams-kafka spec: kafka: # ... listeners: # ... - name: listener1 port: 9094 type: route tls: true # ...클라이언트는 기본 라우터 포트인 포트 443에 연결하지만 트래픽은 구성한 포트로 라우팅됩니다. 이 예에서는 9094입니다.
- 업데이트된 구성을 저장합니다.
Kafka 클러스터
my-cluster의 리소스 페이지를 선택하여 클라이언트에 필요한 연결 정보를 찾습니다.리소스 페이지에서 경로 리스너 및 Kafka 클러스터에 연결하는 데 필요한 공용 클러스터 인증서에 대한 세부 정보를 찾을 수 있습니다.
-
Kafka 클러스터에 대해 생성된
my-cluster-kafka-listener1-bootstrap경로 이름을 클릭하여 경로 세부 정보를 표시합니다. 호스트 이름을 기록해 둡니다.
호스트 이름은 Kafka 클라이언트에 있는 포트 443을 Kafka 클러스터에 연결하기 위한 부트스트랩 주소로 지정합니다.
네트워킹 > 경로로 이동하고
amq-streams-kafka프로젝트를 선택하여 네임스페이스에 생성된 경로를 표시하여 부트스트랩 주소를 찾을 수도 있습니다.또는
oc툴을 사용하여 부트스트랩 세부 정보를 추출할 수 있습니다.부트스트랩 정보 추출
oc get routes my-cluster-kafka-listener1-bootstrap -o=jsonpath='{.status.ingress[0].host}{"\n"}'리소스 페이지로 돌아가
my-cluster-cluster-ca-cert이름을 클릭하여 Kafka 클러스터에 액세스하기 위한 시크릿 세부 정보를 표시합니다.ca.crt인증서 파일에는 Kafka 클러스터의 공용 인증서가 포함되어 있습니다.Kafka 브로커에 액세스하려면 인증서가 필요합니다.
ca.crt공용 인증서 파일의 로컬 사본을 만듭니다.인증서 세부 정보를 복사하거나 OpenShift
oc툴을 사용하여 압축을 풀 수 있습니다.공용 인증서 추출
oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > ca.crtkeytool을 사용하여 공용 클러스터 인증서에 대한 로컬 신뢰 저장소를 생성합니다.로컬 신뢰 저장소 생성
keytool -keystore client.truststore.jks -alias CARoot -import -file ca.crt메시지가 표시되면 신뢰 저장소에 액세스하기 위한 암호를 생성합니다.
신뢰 저장소는 Kafka 클러스터에 대한 액세스를 인증하기 위해 Kafka 클라이언트에 지정됩니다.
이제 메시지 전송 및 수신을 시작할 준비가 되었습니다.