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 브리지에서 랙 인식을 활성화할 수 있습니다.