3.2. OpenShift で Kafka ストレージを使用して Apicurio Registry を設定する
このセクションでは、OpenShift で AMQ Streams を使用して Apicurio Registry 用に Kafka ベースのストレージを設定する方法について説明します。kafkasql ストレージオプションは、インメモリー H2 データベースを備えた Kafka ストレージを使用します。このストレージオプションは、OpenShift の Kafka クラスターに persistent ストレージが設定されている実稼働環境に適しています。
既存の Kafka クラスターに Apicurio Registry をインストールするか、環境に応じて新しい Kafka クラスターを作成できます。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
- Apicurio Registry がすでにインストールされている必要があります。2章OpenShift に Apicurio Registry をインストールするを参照してください。
- AMQ Streams がすでにインストールされている。「OpenShift OperatorHub からの AMQ Streams のインストール:」を参照してください。
手順
- OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
Kafka クラスターがまだ設定されていない場合は、AMQ Streams を使用して新しい Kafka クラスターを作成します。たとえば、OpenShift OperatorHub では以下を実行します。
- Installed Operators をクリックしてから Red Hat Integration - AMQ Streams をクリックします。
- Provided APIs、Kafka と選択し、Create Instance をクリックして新しい Kafka クラスターを作成します。
適切にカスタムリソース定義を編集し、Create をクリックします。
警告デフォルトの例では、3 つの Zookeeper ノード、および、
ephemeralストレージを持つ 3 つの Kafka ノードを持つクラスターが作成されます。この一時ストレージは開発およびテストにのみ適しており、実稼働には適していません。詳細については、OpenShift での AMQ ストリームのデプロイとアップグレード を参照してください。
- クラスターの準備ができたら、Provided APIs > Kafka > my-cluster > YAML をクリックします。
statusブロックで、bootstrapServers値のコピーを作成します。これは、後で Apicurio Registry をデプロイするために使用します。以下に例を示します。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 ...- Installed 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'- Create をクリックし、Apicurio Registry ルートが OpenShift に作成されるのを待ちます。
Networking > Route をクリックして、Apicurio Registry Web コンソールの新しいルートにアクセスします。以下に例を示します。
http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/
Apicurio Registry がデータの保存に使用する Kafka トピックを設定するには、Installed Operators > Red Hat Integration - AMQ Streams > Provided APIs > 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警告Apicurio Registry で使用される Kafka トピック (デフォルトでは
kafkasql-journalという名前) を圧縮クリーンアップポリシーで設定する必要があります。そうしないと、データ損失が発生する可能性があります。
関連情報
- AMQ Streams を使用した Kafka クラスターとトピックの作成の詳細については、OpenShift での AMQ Streams のデプロイとアップグレード を参照してください。