15.4. 노드 포트를 사용하여 Kafka에 액세스


노드 포트를 사용하여 OpenShift 클러스터 외부의 외부 클라이언트에서 Kafka 클러스터에 액세스합니다.

브로커에 연결하려면 Kafka 부트스트랩 주소에 대한 호스트 이름 및 포트 번호와 TLS 암호화에 사용되는 인증서를 지정합니다.

이 절차에서는 기본 nodeport 리스너 구성을 보여줍니다. 리스너 속성을 사용하여 TLS 암호화(tls)를 활성화하고 클라이언트 인증 메커니즘(인증)을 지정할 수 있습니다. 구성 속성을 사용하여 추가 구성 을 추가합니다. 예를 들어 nodeport 리스너와 함께 다음 구성 속성을 사용할 수 있습니다.

preferredNodePortAddressType
노드 주소로 확인되는 첫 번째 주소 유형을 지정합니다.
externalTrafficPolicy
서비스가 외부 트래픽을 node-local 또는 클러스터 전체 엔드포인트로 라우팅하는지 여부를 지정합니다.
nodePort
부트 스트랩 및 브로커 서비스에 할당된 노드 포트 번호를 덮어씁니다.

리스너 구성에 대한 자세한 내용은 GenericKafkaListener 스키마 참조를 참조하십시오.

사전 요구 사항

  • 실행중인 Cluster Operator

이 절차에서 Kafka 클러스터 이름은 my-cluster 입니다. 리스너 이름은 external4 입니다.

프로세스

  1. nodeport 유형으로 설정된 외부 리스너를 사용하여 Kafka 리소스를 구성합니다.

    예를 들면 다음과 같습니다.

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      labels:
        app: my-cluster
      name: my-cluster
      annotations:
        strimzi.io/node-pools: enabled
        strimzi.io/kraft: enabled
      namespace: myproject
    spec:
      kafka:
        # ...
        listeners:
          - name: external4
            port: 9094
            type: nodeport
            tls: true
            authentication:
              type: tls
            # ...
        # ...
  2. 리소스를 생성하거나 업데이트합니다.

    oc apply -f <kafka_configuration_file>

    kafka 브로커의 ID를 확인하기 위한 클러스터 CA 인증서가 시크릿 my-cluster-cluster-ca-cert 에 생성됩니다.

    NodePort 유형 서비스는 각 Kafka 브로커 및 외부 부트스트랩 서비스에 대해 생성됩니다.

    부트스트랩 및 브로커용으로 생성된 노드 포트 서비스

    NAME                                  TYPE      CLUSTER-IP      PORT(S)
    my-cluster-kafka-external4-0          NodePort  172.30.55.13    9094:31789/TCP
    my-cluster-kafka-external4-1          NodePort  172.30.250.248  9094:30028/TCP
    my-cluster-kafka-external4-2          NodePort  172.30.115.81   9094:32650/TCP
    my-cluster-kafka-external4-bootstrap  NodePort  172.30.30.23    9094:32650/TCP

    클라이언트 연결에 사용되는 부트스트랩 주소는 Kafka 리소스의 상태로 전파됩니다.

    부트스트랩 주소의 상태 예

    status:
      clusterId: Y_RJQDGKRXmNF7fEcWldJQ
      conditions:
        - lastTransitionTime: '2023-01-31T14:59:37.113630Z'
          status: 'True'
          type: Ready
      kafkaVersion: 4.0.0
      listeners:
        # ...
        - addresses:
            - host: ip-10-0-224-199.us-west-2.compute.internal
              port: 32650
          bootstrapServers: 'ip-10-0-224-199.us-west-2.compute.internal:32650'
          certificates:
            - |
              -----BEGIN CERTIFICATE-----
    
              -----END CERTIFICATE-----
          name: external4
      observedGeneration: 2
      operatorLastSuccessfulVersion: 3.0
     # ...

  3. Kafka 리소스의 상태에서 Kafka 클러스터에 액세스하는 데 사용할 수 있는 부트스트랩 주소를 검색합니다.

    oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="external4")].bootstrapServers}{"\n"}'
    
    ip-10-0-224-199.us-west-2.compute.internal:32650
  4. 클러스터 CA 인증서를 추출합니다.

    oc get secret my-cluster-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crt
  5. 브로커에 연결하도록 클라이언트를 구성합니다.

    1. Kafka 클라이언트에 연결할 부트스트랩 주소로 부트스트랩 호스트 및 포트를 지정합니다. 예를 들어 ip-10-0-224-199.us-west-2.compute.internal:32650 입니다.
    2. 추출된 인증서를 Kafka 클라이언트의 신뢰 저장소에 추가하여 TLS 연결을 구성합니다.

      클라이언트 인증 메커니즘을 활성화한 경우 클라이언트에서도 구성해야 합니다.

참고

자체 리스너 인증서를 사용하는 경우 클라이언트의 신뢰 저장소 구성에 CA 인증서를 추가해야 하는지 확인합니다. 공용(외부) CA인 경우 일반적으로 추가할 필요가 없습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동