6장. Apache Kafka용 Knative 브로커 구성
Apache Kafka의 Knative 브로커 구현은 지원되는 버전의 Apache Kafka 메시지 스트리밍 플랫폼을 OpenShift Serverless와 함께 사용할 수 있는 통합 옵션을 제공합니다. Kafka는 이벤트 소스, 채널, 브로커 및 이벤트 싱크 기능에 대한 옵션을 제공합니다.
코어 OpenShift Serverless 설치의 일부로 제공되는 Knative Eventing 구성 요소 외에도 다음을 통해 KnativeKafka
CR(사용자 정의 리소스)을 설치할 수 있습니다.
- OpenShift Container Platform용 클러스터 관리자
- AWS의 Red Hat OpenShift Service 또는 OpenShift Dedicated의 클러스터 또는 전용 관리자입니다.
KnativeKafka
CR은 다음과 같은 추가 옵션을 사용자에게 제공합니다.
- Kafka 소스
- Kafka 채널
- Kafka 브로커
- Kafka 싱크
6.1. Apache Kafka용 Knative 브로커 설치
Apache Kafka의 Knative 브로커 구현은 지원되는 버전의 Apache Kafka 메시지 스트리밍 플랫폼을 OpenShift Serverless와 함께 사용할 수 있는 통합 옵션을 제공합니다. Apache Kafka 기능에 대한 Knative 브로커는 KnativeKafka
사용자 정의 리소스를 설치한 경우 OpenShift Serverless 설치에서 사용할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Eventing을 클러스터에 설치했습니다.
- Red Hat AMQ Streams 클러스터에 액세스할 수 있습니다.
-
확인 단계를 사용하려면 OpenShift CLI(
oc
)를 설치합니다. - OpenShift Container Platform에 대한 클러스터 관리자 권한이 있거나 AWS 또는 OpenShift Dedicated의 Red Hat OpenShift Service에 대한 클러스터 또는 전용 관리자 권한이 있습니다.
- OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다.
프로세스
-
관리자 화면에서 Operator
설치된 Operator로 이동합니다. - 페이지 상단에 있는 프로젝트 드롭다운이 Project: knative-eventing으로 설정되어 있는지 확인합니다.
- OpenShift Serverless Operator의 Provided APIs 목록에서 Knative Kafka를 검색하여 Create Instance를 클릭합니다.
Knative Kafka 생성 페이지에서 KnativeKafka 오브젝트를 구성합니다.
중요클러스터에서 Kafka 채널, 소스, 브로커 또는 싱크를 사용하려면 사용할 옵션에 대해 활성화된 스위치를 true 로 전환해야 합니다. 이러한 스위치는 기본적으로 false로 설정됩니다. 또한 Kafka 채널, 브로커 또는 싱크를 사용하려면 부트스트랩 서버를 지정해야 합니다.
- KnativeKafka 오브젝트 생성을 완전히 제어할 필요가 없는 간단한 구성은 이 양식을 사용합니다.
KnativeKafka 오브젝트 생성을 완전히 제어해야 하는 복잡한 구성을 위해 YAML을 편집합니다. Knative Kafka 생성 페이지에서 YAML 편집 링크를 클릭하여 YAML 에 액세스할 수 있습니다.
KnativeKafka
사용자 정의 리소스의 예apiVersion: operator.serverless.openshift.io/v1alpha1 kind: KnativeKafka metadata: name: knative-kafka namespace: knative-eventing spec: channel: enabled: true 1 bootstrapServers: <bootstrap_servers> 2 source: enabled: true 3 broker: enabled: true 4 defaultConfig: bootstrapServers: <bootstrap_servers> 5 numPartitions: <num_partitions> 6 replicationFactor: <replication_factor> 7 sink: enabled: true 8 logging: level: INFO 9
- 1
- 개발자가 클러스터에서
KafkaChannel
채널 유형을 사용할 수 있습니다. - 2
- AMQ Streams 클러스터에 있는 쉼표로 구분된 부트스트랩 서버 목록입니다.
- 3
- 개발자가 클러스터에서
KafkaSource
이벤트 소스 유형을 사용할 수 있습니다. - 4
- 개발자가 클러스터에서 Apache Kafka에 Knative 브로커 구현을 사용할 수 있습니다.
- 5
- Red Hat AMQ Streams 클러스터의 쉼표로 구분된 부트스트랩 서버 목록입니다.
- 6
Broker
오브젝트에서 지원하는 Kafka 주제의 파티션 수를 정의합니다. 기본값은10
입니다.- 7
Broker
오브젝트에서 지원하는 Kafka 주제의 복제 요소를 정의합니다. 기본값은3
입니다.replicationFactor
값은 Red Hat AMQ Streams 클러스터의 노드 수보다 작거나 같아야 합니다.- 8
- 개발자가 클러스터에서 Kafka 싱크를 사용할 수 있습니다.
- 9
- Kafka 데이터 플레인의 로그 수준을 정의합니다. 허용되는 값은
TRACE
,DEBUG
,INFO
,WARN
및ERROR
입니다. 기본값은INFO
입니다.
주의DEBUG
또는TRACE
를 프로덕션 환경에서 로깅 수준으로 사용하지 마십시오. 이러한 로깅 수준의 출력은 상세하며 성능이 저하될 수 있습니다.
- Kafka에 대한 선택적 구성을 완료한 후 생성을 클릭합니다. 그러면 리소스 목록에 knative-kafka가 있는 Knative Kafka 탭으로 자동으로 이동합니다.
검증
- Knative Kafka 탭에서 knative-kafka 리소스를 클릭합니다. 그러면 자동으로 Knative Kafka 개요 페이지로 이동합니다.
리소스에 대한 조건 목록을 확인하고 상태가 True인지 확인합니다.
조건 상태가 알 수 없음 또는 False인 경우 몇 분 정도 기다린 후 페이지를 새로 고칩니다.
Apache Kafka 리소스의 Knative 브로커가 생성되었는지 확인합니다.
$ oc get pods -n knative-eventing
출력 예
NAME READY STATUS RESTARTS AGE kafka-broker-dispatcher-7769fbbcbb-xgffn 2/2 Running 0 44s kafka-broker-receiver-5fb56f7656-fhq8d 2/2 Running 0 44s kafka-channel-dispatcher-84fd6cb7f9-k2tjv 2/2 Running 0 44s kafka-channel-receiver-9b7f795d5-c76xr 2/2 Running 0 44s kafka-controller-6f95659bf6-trd6r 2/2 Running 0 44s kafka-source-dispatcher-6bf98bdfff-8bcsn 2/2 Running 0 44s kafka-webhook-eventing-68dc95d54b-825xs 2/2 Running 0 44s