3.2. OpenShift で Kafka ストレージを使用して Apicurio Registry を設定する

このセクションでは、OpenShift で AMQ Streams を使用して Apicurio Registry 用に Kafka ベースのストレージを設定する方法について説明します。kafkasql ストレージオプションは、インメモリー H2 データベースを備えた Kafka ストレージを使用します。このストレージオプションは、OpenShift の Kafka クラスターに persistent ストレージが設定されている実稼働環境に適しています。

既存の Kafka クラスターに Apicurio Registry をインストールするか、環境に応じて新しい Kafka クラスターを作成できます。

前提条件

手順

  1. OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
  2. Kafka クラスターがまだ設定されていない場合は、AMQ Streams を使用して新しい Kafka クラスターを作成します。たとえば、OpenShift OperatorHub では以下を実行します。

    1. Installed Operators をクリックしてから Red Hat Integration - AMQ Streams をクリックします。
    2. Provided APIsKafka と選択し、Create Instance をクリックして新しい Kafka クラスターを作成します。
    3. 適切にカスタムリソース定義を編集し、Create をクリックします。

      警告

      デフォルトの例では、3 つの Zookeeper ノード、および、ephemeral ストレージを持つ 3 つの Kafka ノードを持つクラスターが作成されます。この一時ストレージは開発およびテストにのみ適しており、実稼働には適していません。詳細については、OpenShift での AMQ ストリームのデプロイとアップグレード を参照してください。

  3. クラスターの準備ができたら、Provided APIs > Kafka > my-cluster > YAML をクリックします。
  4. 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
      ...
  5. Installed Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry をクリックします。
  6. 次のカスタムリソース定義を貼り付けますが、前にコピーした 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'
  7. Create をクリックし、Apicurio Registry ルートが OpenShift に作成されるのを待ちます。
  8. Networking > Route をクリックして、Apicurio Registry Web コンソールの新しいルートにアクセスします。以下に例を示します。

    http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/
  9. 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 という名前) を圧縮クリーンアップポリシーで設定する必要があります。そうしないと、データ損失が発生する可能性があります。

関連情報