3.2. 使用 OpenShift 上的 Kafka 存储配置 Apicurio Registry
本节介绍如何在 OpenShift 中使用 AMQ Streams 为 Apicurio Registry 配置基于 Kafka 的存储。kafkasql
存储选项使用 Kafka 存储和内存中 H2 数据库。当为 OpenShift 上的 Kafka 集群配置 持久性存储时
,这个存储选项适用于生产环境。
您可以在现有 Kafka 集群中安装 Apicurio Registry,或根据您的环境创建新 Kafka 集群。
前提条件
- 您必须具有具有集群管理员访问权限的 OpenShift 集群。
- 您必须已安装了 Apicurio Registry。请参阅 第 2 章 在 OpenShift 上安装 Apicurio Registry。
- 您必须已安装了 AMQ Streams。请参阅 第 3.1 节 “从 OpenShift OperatorHub 安装 AMQ Streams”。
流程
- 在 OpenShift Container Platform web 控制台中,使用具有集群管理员特权的帐户登录。
如果您还没有配置 Kafka 集群,请使用 AMQ Streams 创建新 Kafka 集群。例如,在 OpenShift OperatorHub 中:
- 点 Installed Operators,然后点 Red Hat Integration - AMQ Streams。
- 在 Provided APIs 下,然后点 Create Instance 来创建新的 Kafka 集群。
根据需要编辑自定义资源定义,然后点 Create。
警告默认示例创建了一个集群,这个集群带有 3 个 Zookeeper 节点,以及 3 个带有
临时
存储的 Kafka 节点。这种临时存储仅适用于开发和测试,不适用于生产环境。如需了解更多详细信息,请参阅在 OpenShift 中部署和升级 AMQ Streams。
- 集群就绪后,点 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 并等待 OpenShift 上创建 Apicurio Registry 路由。
点 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 (默认为
kafkasql-journal
)使用的 Kafka 主题,否则可能会出现数据丢失。
其他资源
- 有关使用 AMQ Streams 创建 Kafka 集群和主题的详情,请参阅在 OpenShift 中部署和升级 AMQ Streams。