7.3. Kafka 클러스터 구성


kafka 클러스터는 하나 이상의 브로커로 구성됩니다. 생산자와 소비자가 브로커 내의 주제에 액세스할 수 있으려면 Kafka 구성에서 클러스터에 데이터가 저장되는 방법과 데이터에 액세스하는 방법을 정의해야 합니다. 랙에서 여러 브로커 노드로 실행되도록 Kafka 클러스터를 구성할 수 있습니다.

7.3.1. 스토리지

AMQ Streams는 Kafka 및 Zoo Cryostat 데이터를 관리하기 위한 다음 스토리지 구성 옵션을 지원합니다.

ephemeral (개발에만 권장)
임시 스토리지는 인스턴스의 수명 동안 데이터를 저장합니다. 인스턴스가 다시 시작되면 데이터가 손실됩니다.
persistent
영구 스토리지는 인스턴스의 라이프사이클과 무관한 장기 데이터 스토리지와 관련이 있습니다.
JBOD(Just a Bunch of Disks, suitable for Kafka)
JBOD를 사용하면 여러 디스크를 사용하여 각 브로커에 커밋 로그를 저장할 수 있습니다.

이러한 옵션 외에도 계층화된 스토리지를 사용하도록 AMQ Streams를 구성할 수 있습니다. 계층화된 스토리지는 Kafka의 초기 액세스 기능으로 다양한 특성을 가진 스토리지 유형의 병렬 사용을 활용하여 데이터 관리에 더 많은 유연성을 제공합니다. 기본 스토리지 옵션 중 하나는 계층화된 스토리지와 함께 구성해야 하지만 성능 및 확장성을 개선하기 위해 블록 스토리지와 오브젝트 스토리지와 같은 조합을 사용할 수 있습니다.

스토리지 유형은 storage 또는 tieredStorage 구성 속성을 사용하여 사용자 정의 리소스에 지정됩니다.

  • 스토리지 구성 유형:

    • 유형: 임시
    • 유형: PVC(영구 볼륨 클레임)를 사용한 영구 스토리지에 대한 persistent-claim
    • 유형: JBOD 스토리지용 jbod
  • tieredStorage 구성 유형:

    • 유형: 사용자 정의 계층 스토리지의 사용자 정의

디스크에 저장된 Kafka 및 Zoo Cryostat 데이터의 경우 저장을 위한 파일 시스템 형식은 XFS 또는 EXT4여야 합니다. 인프라에서 지원하는 경우 기존 Kafka 클러스터에서 사용하는 디스크 용량을 늘릴 수 있습니다.

7.3.2. 리스너

리스너는 클라이언트가 Kafka 클러스터에 연결하는 방법을 구성합니다.

Kafka 클러스터 내에서 각 리스너에 고유한 이름과 포트를 지정하면 여러 리스너를 구성할 수 있습니다.

다음 유형의 리스너가 지원됩니다.

  • OpenShift 내에서 액세스를 위한 내부 리스너
  • OpenShift 외부에서 액세스할 수 있는 외부 리스너

리스너에 TLS 암호화를 활성화하고 인증을 구성할 수 있습니다.

내부 리스너는 내부 유형을 지정하여 Kafka를 노출합니다.

  • 동일한 OpenShift 클러스터 내에서 연결할 내부
  • broker ClusterIP 서비스를 사용하여 Kafka 노출

외부 리스너는 외부 유형을 지정하여 Kafka를 노출합니다.

  • OpenShift 경로 및 기본 HAProxy 라우터를 사용하는 경로
  • loadbalancer 서비스를 사용하는 LoadBalancer
  • OpenShift 노드에서 포트 를 사용하는 NodePort
  • OpenShift Ingress쿠버네티스에 Ingress NGINX 컨트롤러를사용하는 Ingress
참고

cluster-ip 유형을 사용하면 자체 액세스 메커니즘을 추가할 수 있습니다. 예를 들어 사용자 정의 Ingress 컨트롤러 또는 OpenShift Gateway API와 함께 리스너를 사용할 수 있습니다.

토큰 기반 인증에 OAuth 2.0을 사용하는 경우 권한 부여 서버를 사용하도록 리스너를 구성할 수 있습니다.

7.3.3. Rack 인식

Rack은 데이터 센터 또는 가용성 영역의 데이터 센터 또는 랙을 나타냅니다. 랙에 Kafka 브로커 Pod 및 주제 복제본을 배포하도록 랙 인식을 구성합니다. rack 속성을 사용하여 랙 인식을 활성화하여 topologyKey 를 지정합니다. topologyKey 는 랙을 식별하는 OpenShift 작업자 노드에 할당된 레이블의 이름입니다. AMQ Streams는 각 Kafka 브로커에 랙 ID를 할당합니다. Kafka 브로커는 ID를 사용하여 랙에 파티션 복제본을 분산합니다. 랙 인식과 함께 사용할 RackAwareReplicaSelector 선택기 플러그인을 지정할 수도 있습니다. 플러그인은 브로커 및 소비자의 랙 ID와 일치하므로 가장 가까운 복제본에서 메시지가 사용됩니다. 플러그인을 사용하려면 소비자도 랙 인식이 활성화되어 있어야 합니다. Kafka Connect, MirrorMaker 2 및 Kafka 브리지에서 랙 인식을 활성화할 수 있습니다.

7.3.4. Kafka 구성을 표시하는 YAML의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    listeners:
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external1
        port: 9094
        type: route
        tls: true
        authentication:
          type: tls
    # ...
    storage:
      type: persistent-claim
      size: 10000Gi
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    config:
      replica.selector.class: org.apache.kafka.common.replica.RackAwareReplicaSelector
    # ...
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat