3.2. OpenShift에서 Kafka 스토리지를 사용하여 서비스 레지스트리 구성
이 섹션에서는 OpenShift에서 AMQ Streams를 사용하여 서비스 레지스트리에 대한 Kafka 기반 스토리지를 구성하는 방법을 설명합니다. kafkasql
스토리지 옵션은 캐싱을 위해 메모리 내 H2 데이터베이스와 함께 Kafka 스토리지를 사용합니다. 이 스토리지 옵션은 영구
스토리지가 OpenShift의 Kafka 클러스터에 대해 구성된 경우 프로덕션 환경에 적합합니다.
환경에 따라 기존 Kafka 클러스터에 서비스 레지스트리를 설치하거나 새 Kafka 클러스터를 생성할 수 있습니다.
사전 요구 사항
- 클러스터 관리자 액세스 권한이 있는 OpenShift 클러스터가 있어야 합니다.
- 이미 서비스 레지스트리가 설치되어 있어야 합니다. 2장. OpenShift에 서비스 레지스트리 설치을 참조하십시오.
- AMQ Streams가 이미 설치되어 있어야 합니다. 3.1절. “OpenShift OperatorHub에서 AMQ Streams 설치”을 참조하십시오.
프로세스
- OpenShift Container Platform 웹 콘솔에서 클러스터 관리자 권한이 있는 계정을 사용하여 로그인합니다.
Kafka 클러스터가 구성되지 않은 경우 AMQ Streams를 사용하여 새 Kafka 클러스터를 생성합니다. 예를 들어 OpenShift OperatorHub에서는 다음을 수행합니다.
- Installed Operators 를 클릭한 다음 Red Hat Integration - AMQ Streams 를 클릭합니다.
- 제공된 API 에서 Kafka 를 클릭한 다음 인스턴스 생성 을 클릭하여 새 Kafka 클러스터를 생성합니다.
필요에 따라 사용자 정의 리소스 정의를 편집하고 생성 을 클릭합니다.
주의기본 예제에서는 3개의 Zookeeper 노드와 3개의 Kafka 노드가 있는
클러스터를
생성합니다. 이 임시 스토리지는 개발 및 테스트에만 적합하며 프로덕션에는 적합하지 않습니다. 자세한 내용은 OpenShift에서 AMQ 스트림 배포 및 관리를 참조하십시오.
- 클러스터가 준비되면 제공된 API > Kafka > my-cluster > YAML 을 클릭합니다.
상태
블록에서 나중에 서비스 레지스트리를 배포하는 데 사용할bootstrapServers
값의 사본을 만듭니다. 예를 들면 다음과 같습니다.status: ... conditions: ... listeners: - addresses: - host: my-cluster-kafka-bootstrap.my-project.svc port: 9092 bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092' type: plain ...
- 설치된 Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry 를 클릭합니다.
다음 사용자 정의 리소스 정의에 붙여넣지만 이전에 복사한
bootstrapServers
값을 사용합니다.apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql spec: configuration: persistence: 'kafkasql' kafkasql: bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092'
- 생성 을 클릭하고 OpenShift에서 서비스 레지스트리 경로가 생성될 때까지 기다립니다.
네트워킹 > 경로를 클릭하여 서비스 레지스트리 웹 콘솔의 새 경로에 액세스합니다. 예를 들면 다음과 같습니다.
http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/
Service Registry에서 데이터를 저장하는 데 사용하는 Kafka 주제를 구성하려면 설치된 Operator > Red Hat Integration - AMQ Streams > Provided API > Kafka Topic > kafkasql-journal > YAML 을 클릭합니다. 예를 들면 다음과 같습니다.
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: kafkasql-journal labels: strimzi.io/cluster: my-cluster namespace: ... spec: partitions: 3 replicas: 3 config: cleanup.policy: compact
주의서비스 레지스트리에서 사용하는 Kafka 항목(기본적으로
kafkasql-journal
)을 압축 정리 정책으로 구성해야 합니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다.
추가 리소스
- AMQ Streams를 사용하여 Kafka 클러스터 및 항목을 생성하는 방법에 대한 자세한 내용은 OpenShift에서 AMQ Streams 배포 및 관리를 참조하십시오.