在 OpenShift 上安装和部署 Apicurio Registry
安装、部署和配置 Apicurio Registry 2.6
摘要
前言 复制链接链接已复制到粘贴板!
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
对红帽文档提供反馈
我们感谢您对我们文档的反馈。
要进行改进,请创建一个 Jira 问题,并描述您推荐的更改。尽可能提供更详细的信息,以便我们快速解决您的请求。
前提条件
-
您有一个红帽客户门户网站帐户。此帐户允许您登录到 Red Hat Jira Software 实例。
如果您没有帐户,系统会提示您创建一个帐户。
流程
- 单击以下链接: 创建问题。
- 在 Summary 文本框中,输入问题的简短描述。
在 Description 文本框中,提供以下信息:
- 找到此问题的页面的 URL。
-
有关此问题的详细描述。
您可以将信息保留在任何其他字段中,使其默认值。
- 点 Create 将 JIRA 问题提交到文档团队。
感谢您抽出时间提供反馈。
第 1 章 Apicurio Registry Operator quickstart 复制链接链接已复制到粘贴板!
您可以使用自定义资源定义(CRD)在命令行中快速安装 Apicurio Registry Operator。
快速入门示例使用 SQL 数据库中的存储部署 Apicurio Registry 实例:
生产环境的建议安装选项是 OpenShift OperatorHub。推荐的存储选项是用于性能、稳定性和数据管理的 SQL 数据库。
1.1. Quickstart Apicurio Registry Operator 安装 复制链接链接已复制到粘贴板!
您可以使用下载的安装文件和示例 CRD 在命令行中快速安装并部署 Apicurio Registry Operator,而无需 Operator Lifecycle Manager。
先决条件
- 已使用管理员访问权限登录到 OpenShift 集群。
-
已安装 OpenShift
oc命令行客户端。如需了解更多详细信息,请参阅 OpenShift CLI 文档。
流程
-
浏览 Red Hat Software Downloads,选择产品版本,并在 Apicurio Registry CRD
.zip文件中下载示例。 -
提取下载的 CRD
.zip文件并更改到apicurio-registry-install-examples目录。 为 Apicurio Registry Operator 安装创建一个 OpenShift 项目,例如:
export NAMESPACE="apicurio-registry" oc new-project "$NAMESPACE"
export NAMESPACE="apicurio-registry" oc new-project "$NAMESPACE"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令在
install/install.yaml文件中应用示例 CRD:cat install/install.yaml | sed "s/apicurio-registry-operator-namespace/$NAMESPACE/g" | oc apply -f -
cat install/install.yaml | sed "s/apicurio-registry-operator-namespace/$NAMESPACE/g" | oc apply -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入
oc get deployment以检查 Apicurio Registry Operator 的就绪情况。例如,输出应如下:NAME READY UP-TO-DATE AVAILABLE AGE apicurio-registry-operator 1/1 1 1 XmYs
NAME READY UP-TO-DATE AVAILABLE AGE apicurio-registry-operator 1/1 1 1 XmYsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. Quickstart Apicurio Registry 实例部署 复制链接链接已复制到粘贴板!
要创建 Apicurio Registry 实例部署,请使用 SQL 数据库存储选项连接到现有的 PostgreSQL 数据库。
先决条件
- 确保已安装 Apicurio Registry Operator。
- 您有一个可从 OpenShift 集群访问的 PostgreSQL 数据库。
流程
在编辑器中打开
examples/apicurioregistry_sql_cr.yaml文件,并查看ApicurioRegistry自定义资源(CR):SQL 存储的 CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
dataSource部分中,将示例设置替换为您的数据库连接详情。例如:dataSource: url: "jdbc:postgresql://postgresql.apicurio-registry.svc:5432/registry" userName: "pgadmin" password: "pgpass"dataSource: url: "jdbc:postgresql://postgresql.apicurio-registry.svc:5432/registry" userName: "pgadmin" password: "pgpass"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令使用 Apicurio Registry Operator 在命名空间中应用更新的
ApicurioRegistryCR,并等待 Apicurio Registry 实例部署:oc project "$NAMESPACE" oc apply -f ./examples/apicurioregistry_sql_cr.yaml
oc project "$NAMESPACE" oc apply -f ./examples/apicurioregistry_sql_cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入
oc get deployment以检查 Apicurio Registry 实例的就绪情况。例如,输出应如下:NAME READY UP-TO-DATE AVAILABLE AGE example-apicurioregistry-sql-deployment 1/1 1 1 XmYs
NAME READY UP-TO-DATE AVAILABLE AGE example-apicurioregistry-sql-deployment 1/1 1 1 XmYsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入
oc get routes以获取HOST/PORTURL,以在浏览器中打开 Apicurio Registry Web 控制台。例如:example-apicurioregistry-sql.apicurio-registry.router-default.apps.mycluster.myorg.mycompany.com
example-apicurioregistry-sql.apicurio-registry.router-default.apps.mycluster.myorg.mycompany.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 在 OpenShift 上安装 Apicurio Registry 复制链接链接已复制到粘贴板!
本章解释了如何在 OpenShift Container Platform 上安装 Apicurio Registry:
先决条件
2.1. 从 OpenShift OperatorHub 安装 Apicurio Registry 复制链接链接已复制到粘贴板!
您可以从 OperatorHub 在 OpenShift 集群上安装 Apicurio Registry Operator。OperatorHub 位于 OpenShift Container Platform Web 控制台中,为集群管理员提供用于发现和安装 Operator 的界面。如需了解更多详细信息,请参阅了解 OperatorHub。
您可以根据您的环境安装多个 Apicurio Registry 实例。实例数量取决于 Apicurio Registry 中存储的工件数量和类型,以及您选择的存储选项。
前提条件
- 您必须具有集群管理员对 OpenShift 集群的访问权限。
流程
- 在 OpenShift Container Platform Web 控制台中,使用具有集群管理员特权的帐户登录。
创建新的 OpenShift 项目:
- 在左侧导航菜单中,单击 Home,Project,然后单击 Create Project。
-
输入项目名称,如
my-project,然后单击 Create。
- 在左侧导航菜单中,点 Operators,然后点 OperatorHub。
-
在 Filter by keyword 文本框中,输入
registry以查找 Red Hat Integration - Service Registry Operator。 - 阅读 Operator 信息,然后点 Install 显示 Operator 订阅页面。
选择您的订阅设置,例如:
更新频道 :选择以下之一:
- 2.x :包括所有次版本和补丁更新,如 2.3.0 和 2.0.3。例如,2.0.x 上的安装将升级到 2.3.x。
- 2.0.x :仅包括补丁更新,如 2.0.1 和 2.0.2。例如,在 2.0.x 上安装将忽略 2.3.x。
Installation Mode: 选择以下之一:
- All namespaces on the cluster (default)
- 集群中的特定命名空间, 然后是 my-project
- 批准策略 :选择 Automatic 或 Manual
- 点 Install,然后等待 Operator 准备就绪。
第 3 章 在 AMQ Streams 中部署 Apicurio Registry 存储 复制链接链接已复制到粘贴板!
本章解释了如何在 AMQ Streams 中安装和配置 Apicurio Registry 数据存储。
3.1. 从 OpenShift OperatorHub 安装 AMQ Streams 复制链接链接已复制到粘贴板!
如果您还没有安装 AMQ Streams,您可以从 OperatorHub 在 OpenShift 集群上安装 AMQ Streams Operator。OperatorHub 位于 OpenShift Container Platform Web 控制台中,为集群管理员提供用于发现和安装 Operator 的界面。如需了解更多详细信息,请参阅了解 OperatorHub。
先决条件
- 您必须具有集群管理员对 OpenShift 集群的访问权限
- 有关安装 AMQ Streams 的详情,请参阅在 OpenShift 中部署和管理 AMQ Streams。本节介绍使用 OpenShift OperatorHub 安装的简单示例。
流程
- 在 OpenShift Container Platform Web 控制台中,使用具有集群管理员特权的帐户登录。
-
切换到您要在其中安装 AMQ Streams 的 OpenShift 项目。例如,从 Project 下拉菜单中选择
my-project。 - 在左侧导航菜单中,点 Operators,然后点 OperatorHub。
-
在 Filter by keyword 文本框中,输入
AMQ Streams来查找 Red Hat Integration - AMQ Streams Operator。 - 阅读 Operator 信息,然后点 Install 显示 Operator 订阅页面。
选择您的订阅设置,例如:
- 更新频道,然后 amq-streams-2.6.x
Installation Mode: 选择以下之一:
- All namespaces on the cluster (default)
- A specific namespace on the cluster > my-project
- 批准策略 :选择 Automatic 或 Manual
- 点 Install,然后等待 Operator 准备就绪。
3.2. 使用 OpenShift 上的 Kafka 存储配置 Apicurio Registry 复制链接链接已复制到粘贴板!
本节介绍如何在 OpenShift 中使用 AMQ Streams 为 Apicurio Registry 配置基于 Kafka 的存储。kafkasql 存储选项使用带有内存 H2 数据库的 Kafka 存储进行缓存。当为 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 下,然后点 Kafka,点 Create Instance 创建新的 Kafka 集群。
根据需要编辑自定义资源定义,然后点 Create。
警告默认示例创建了一个集群,这个集群带有 3 个 Zookeeper 节点,以及 3 个带有
临时存储的 Kafka 节点。此临时存储仅适用于开发和测试,不适用于生产环境。如需了解更多详细信息,请参阅在 OpenShift 中部署和管理 AMQ Streams。
- 集群就绪后,点 Provided APIs > Kafka > my-cluster > YAML。
在
status块中,复制bootstrapServers值,稍后您要使用它来部署 Apicurio Registry。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Installed Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry。
粘贴到以下自定义资源定义中,但使用您之前复制的
bootstrapServers值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create 并等待在 OpenShift 上创建 Apicurio Registry 路由。
点 Networking > Route 访问 Apicurio Registry web 控制台的新路由。例如:
http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/
http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要配置 Apicurio Registry 用来存储数据的 Kafka 主题,点 Installed Operators > Red Hat Integration - AMQ Streams > Provided APIs > Kafka Topic > kafkasql-journal > YAML。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告您必须使用压缩清理策略配置 Apicurio Registry 使用的 Kafka 主题(名为
kafkasql-journal),否则可能会出现数据丢失。
3.3. 使用 TLS 安全性配置 Kafka 存储 复制链接链接已复制到粘贴板!
您可以将 AMQ Streams Operator 和 Apicurio Registry Operator 配置为使用加密的传输层安全(TLS)连接。
先决条件
- 已使用 OperatorHub 或命令行安装了 Apicurio Registry Operator。
- 已安装 AMQ Streams Operator,或者可从 OpenShift 集群访问 Kafka。
本节假定 AMQ Streams Operator 可用,但您可以使用任何 Kafka 部署。在这种情况下,您必须手动创建 Apicurio Registry Operator 期望的 Openshift secret。
流程
- 在 OpenShift Web 控制台中,点 Installed Operators,选择 AMQ Streams Operator 详情,然后选择 Kafka 选项卡。
- 点 Create Kafka 为 Apicurio Registry 存储置备一个新的 Kafka 集群。
将
authorization和tls字段配置为为 Kafka 集群使用 TLS 身份验证,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Apicurio Registry 自动创建的默认 Kafka 主题名称为
kafkasql-journal。您可以通过设置环境变量来覆盖此行为或默认主题名称。默认值如下:-
REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true -
REGISTRY_KAFKASQL_TOPIC=kafkasql-journal
如果您决定不手动创建 Kafka 主题,请跳过下一步。
-
点 Kafka Topic 选项卡,然后点 Create Kafka Topic 创建
kafkasql-journal主题:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 Kafka 用户 资源来为 Apicurio Registry 用户配置身份验证和授权。您可以在
metadata部分中指定用户名,或使用默认的my-user。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这个简单示例假定 admin 权限并自动创建 Kafka 主题。您必须为 Apicurio Registry 所需的主题和资源配置
授权部分。以下示例显示了手动创建 Kafka 主题时所需的最小配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 点 Workloads,然后点 Secrets 来查找 AMQ Streams 为 Apicurio Registry 创建的两个 secret 以连接到 Kafka 集群:
-
my-cluster-cluster-ca-cert- 包含 Kafka 集群的 PKCS12 信任存储 my-user- 包含用户的密钥存储注意secret 的名称可能会因集群或用户名而异。
-
如果手动创建 secret,则必须包含以下键值对:
my-cluster-ca-cert
-
ca.p12-truststore in PKCS12 格式 -
ca.password- truststore password
-
my-user
-
PKCS
12 格式的 user.p12- keystore -
user.password- keystore password
-
PKCS
配置以下示例配置,以部署 Apicurio Registry。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您必须使用与普通不安全用例不同的 bootstrapServers 地址。地址必须支持 TLS 连接,并在 type: tls 字段下的指定 Kafka 资源中找到。
3.4. 使用 SCRAM 安全性配置 Kafka 存储 复制链接链接已复制到粘贴板!
您可以将 AMQ Streams Operator 和 Apicurio Registry Operator 配置为对 Kafka 集群使用 Salted Challenge Response Authentication Mechanism (SCRAM-SHA-512)。
先决条件
- 已使用 OperatorHub 或命令行安装了 Apicurio Registry Operator。
- 已安装 AMQ Streams Operator,或者可从 OpenShift 集群访问 Kafka。
本节假定 AMQ Streams Operator 可用,但您可以使用任何 Kafka 部署。在这种情况下,您必须手动创建 Apicurio Registry Operator 期望的 Openshift secret。
流程
- 在 OpenShift Web 控制台中,点 Installed Operators,选择 AMQ Streams Operator 详情,然后选择 Kafka 选项卡。
- 点 Create Kafka 为 Apicurio Registry 存储置备一个新的 Kafka 集群。
将
authorization和tls字段配置为为 Kafka 集群使用 SCRAM-SHA-512 身份验证,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Apicurio Registry 自动创建的默认 Kafka 主题名称为
kafkasql-journal。您可以通过设置环境变量来覆盖此行为或默认主题名称。默认值如下:-
REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true -
REGISTRY_KAFKASQL_TOPIC=kafkasql-journal
如果您决定不手动创建 Kafka 主题,请跳过下一步。
-
点 Kafka Topic 选项卡,然后点 Create Kafka Topic 创建
kafkasql-journal主题:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 Kafka 用户 资源,为 Apicurio Registry 用户配置 SCRAM 身份验证和授权。您可以在
metadata部分中指定用户名,或使用默认的my-user。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这个简单示例假定 admin 权限并自动创建 Kafka 主题。您必须为 Apicurio Registry 所需的主题和资源配置
授权部分。以下示例显示了手动创建 Kafka 主题时所需的最小配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 点 Workloads,然后点 Secrets 来查找 AMQ Streams 为 Apicurio Registry 创建的两个 secret 以连接到 Kafka 集群:
-
my-cluster-cluster-ca-cert- 包含 Kafka 集群的 PKCS12 信任存储 my-user- 包含用户的密钥存储注意secret 的名称可能会因集群或用户名而异。
-
如果手动创建 secret,则必须包含以下键值对:
my-cluster-ca-cert
-
ca.p12- PKCS12 格式的信任存储 -
ca.password- truststore password
-
my-user
-
password- 用户密码
-
配置以下示例设置来部署 Apicurio Registry:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您必须使用与普通不安全用例不同的 bootstrapServers 地址。地址必须支持 TLS 连接,并在 type: tls 字段下的指定 Kafka 资源中找到。
3.5. 为 Kafka 存储配置 OAuth 身份验证 复制链接链接已复制到粘贴板!
在 AMQ Streams 中使用基于 Kafka 的存储时,Apicurio Registry 支持访问需要 OAuth 身份验证的 Kafka 集群。要启用此支持,您必须在 Apicurio Registry 部署中设置一些环境变量。
当您设置这些环境变量时,Apicurio Registry 中的 Kafka 生成者和消费者应用程序将使用此配置通过 OAuth 向 Kafka 集群进行身份验证。
前提条件
- 您必须在 AMQ Streams 中已配置了基于 Kafka 的 Apicurio Registry 数据存储。请参阅 第 3.2 节 “使用 OpenShift 上的 Kafka 存储配置 Apicurio Registry”。
流程
在 Apicurio Registry 部署中设置以下环境变量:
Expand 环境变量 描述 默认值 ENABLE_KAFKA_SASL为 Kafka 中的 Apicurio Registry 存储启用 SASL OAuth 身份验证。您必须将此变量设置为
true,才能使其他变量生效。falseCLIENT_ID用于向 Kafka 进行身份验证的客户端 ID。
-CLIENT_SECRET用于向 Kafka 进行身份验证的客户端 secret。
-OAUTH_TOKEN_ENDPOINT_URIOAuth 身份服务器的 URL。
http://localhost:8090
其他资源
- 有关如何在 OpenShift 中设置 Apicurio Registry 环境变量的示例,请参阅 第 6.1 节 “在 OpenShift 上配置 Apicurio Registry 健康检查”
第 4 章 在 PostgreSQL 数据库中部署 Apicurio Registry 存储 复制链接链接已复制到粘贴板!
本章解释了如何在 PostgreSQL 数据库中安装、配置和管理 Apicurio Registry 数据存储。
4.1. 从 OpenShift OperatorHub 安装 PostgreSQL 数据库 复制链接链接已复制到粘贴板!
如果您还没有安装 PostgreSQL 数据库 Operator,您可以从 OperatorHub 在 OpenShift 集群上安装 PostgreSQL Operator。OperatorHub 位于 OpenShift Container Platform Web 控制台中,为集群管理员提供用于发现和安装 Operator 的界面。如需了解更多详细信息,请参阅了解 OperatorHub。
先决条件
- 您必须具有集群管理员对 OpenShift 集群的访问权限。
流程
- 在 OpenShift Container Platform Web 控制台中,使用具有集群管理员特权的帐户登录。
-
切换到您要在其中安装 PostgreSQL Operator 的 OpenShift 项目。例如,从 Project 下拉菜单中选择
my-project。 - 在左侧导航菜单中,点 Operators,然后点 OperatorHub。
-
在 Filter by keyword 文本框中,输入
PostgreSQL来查找适合环境的 Operator,如 OpenShift 的 Crunchy PostgreSQL。 - 阅读 Operator 信息,然后点 Install 显示 Operator 订阅页面。
选择您的订阅设置,例如:
- 更新频道 :stable
- Installation Mode:A specific namespace on the cluster, then my-project
- 批准策略 :选择 Automatic 或 Manual
点 Install,然后等待 Operator 准备就绪。
重要您必须从所选 PostgreSQL Operator 中读取文档,以了解如何创建和管理数据库。
本节介绍如何使用 PostgreSQL 数据库 Operator 为 OpenShift 上的 Apicurio Registry 配置存储。您可以在现有数据库中安装 Apicurio Registry,或根据您的环境创建新数据库。本节展示了使用 PostgreSQL Operator by Dev4Ddevs.com 的简单示例。
先决条件
- 您必须有一个具有集群管理员访问权限的 OpenShift 集群。
- 您必须已安装了 Apicurio Registry。请参阅 第 2 章 在 OpenShift 上安装 Apicurio Registry。
- 您必须在 OpenShift 上安装了 PostgreSQL Operator。例如,请参阅 第 4.1 节 “从 OpenShift OperatorHub 安装 PostgreSQL 数据库”。
流程
- 在 OpenShift Container Platform Web 控制台中,使用具有集群管理员特权的帐户登录。
-
切换到安装 Apicurio Registry 和 PostgreSQL Operator 的 OpenShift 项目。例如,从 Project 下拉菜单中选择
my-project。 - 为您的 Apicurio Registry 存储创建一个 PostgreSQL 数据库。例如,单击 Installed Operators、PostgreSQL Operator by Dev4Ddevs.com,然后单击 Create database。
点 YAML 并编辑数据库设置,如下所示:
-
Name:将值改为registry -
Image:将值更改为centos/postgresql-12-centos7
-
根据您的环境,根据需要编辑任何其他数据库设置,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create,然后等待数据库创建完毕。
- 点 Installed Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry。
粘贴到以下自定义资源定义中,并编辑数据库
url和凭证的值以匹配您的环境:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create 并等待在 OpenShift 上创建 Apicurio Registry 路由。
点 Networking > Route 访问 Apicurio Registry web 控制台的新路由。例如:
http://example-apicurioregistry-sql.my-project.my-domain-name.com/
http://example-apicurioregistry-sql.my-project.my-domain-name.com/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 备份 Apicurio Registry PostgreSQL 存储 复制链接链接已复制到粘贴板!
在 PostgreSQL 数据库中使用存储时,您必须确保 Apicurio Registry 存储的数据定期备份。
SQL 转储 是适用于任何 PostgreSQL 安装的简单流程。这使用 pg_dump 工具生成带有 SQL 命令的文件,您可以使用该命令在转储时以相同状态重新创建数据库。
pg_dump 是一个常规的 PostgreSQL 客户端应用程序,您可以从任何可访问数据库的远程主机执行。与其他任何客户端一样,可以执行的操作仅限于用户权限。
流程
使用
pg_dump命令将输出重定向到文件中:pg_dump dbname > dumpfile
$ pg_dump dbname > dumpfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
-h host和-p port选项指定pg_dump连接到的数据库。您可以使用压缩工具(如 gzip )减少大型转储文件,例如:
pg_dump dbname | gzip > filename.gz
$ pg_dump dbname | gzip > filename.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关客户端身份验证的详情,请查看 PostgreSQL 文档。
- 有关导入和导出 registry 内容的详情,请参阅使用 REST API 管理 Apicurio Registry 内容。
4.4. 恢复 Apicurio Registry PostgreSQL 存储 复制链接链接已复制到粘贴板!
您可以使用 psql 工具恢复 pg_dump 创建的 SQL 转储文件。
先决条件
-
您必须已使用
pg_dump备份 PostgreSQL datbase。请参阅 第 4.3 节 “备份 Apicurio Registry PostgreSQL 存储”。 - 所有拥有对象或对转储数据库中的对象具有权限的用户都必须已存在。
流程
输入以下命令来创建数据库:
createdb -T template0 dbname
$ createdb -T template0 dbnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令恢复 SQL 转储
psql dbname < dumpfile
$ psql dbname < dumpfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在每个数据库上运行 ANALYZE,以便查询优化器具有有用的统计数据。
第 5 章 保护 Apicurio Registry 部署 复制链接链接已复制到粘贴板!
Apicurio Registry 使用基于 OpenID Connect (OIDC)和 HTTP 基本的红帽单点登录提供身份验证和授权。您可以使用 Red Hat Single Sign-On Operator 自动配置所需的设置,或者在 Red Hat Single Sign-On 和 Apicurio Registry 中手动配置它们。
Apicurio Registry 还通过使用基于 OpenID Connect (OIDC)和 OAuth 授权代码流的 Microsoft Azure Active Directory 提供身份验证和授权。您可以在 Azure AD 和 Apicurio Registry 中手动配置所需的设置。
除了带有 Red Hat Single Sign-On 或 Azure AD 的基于角色的授权选项外,Apicurio Registry 还会在 schema 或 API 级别提供基于内容的授权,其中只有工件创建者具有写入访问权限。您还可以从 OpenShift 集群内部或外部配置到 Apicurio Registry 的 HTTPS 连接。
本章解释了如何在 OpenShift 中为 Apicurio Registry 部署配置以下安全选项:
- 第 5.1 节 “使用 Red Hat Single Sign-On Operator 保护 Apicurio Registry”
- 第 5.2 节 “使用 Red Hat Single Sign-On 配置 Apicurio Registry 身份验证和授权”
- 第 5.3 节 “使用 Microsoft Azure Active Directory 配置 Apicurio Registry 身份验证和授权”
- 第 5.4 节 “Apicurio Registry 身份验证和授权配置选项”
- 第 5.5 节 “从 OpenShift 集群内部配置到 Apicurio Registry 的 HTTPS 连接”
- 第 5.6 节 “从 OpenShift 集群外部配置到 Apicurio Registry 的 HTTPS 连接”
以下流程演示了如何将 Apicurio Registry REST API 和 Web 控制台配置为由 Red Hat Single Sign-On 保护。
Apicurio Registry 支持以下用户角色:
| Name | 功能 |
|---|---|
|
| 完全访问权限,无限制。 |
|
|
创建工件并配置工件规则。无法修改全局规则,执行导入/导出,或者使用 |
|
|
仅查看和搜索。无法修改工件或规则,执行导入/导出,或者使用 |
ApicurioRegistry CRD 中存在一个相关的配置选项,您可以使用将 Web 控制台设置为只读模式。但是,此配置不会影响 REST API。
先决条件
- 您必须已安装了 Apicurio Registry Operator。
- 您必须安装 Red Hat Single Sign-On Operator,或者有可从 OpenShift 集群访问 Red Hat Single Sign-On。
此流程中的示例配置仅用于开发和测试。为了保持流程简单,请不要在生产环境中使用 HTTPS 和其他保护。如需了解更多详细信息,请参阅 Red Hat Single Sign-On 文档。
流程
- 在 OpenShift Web 控制台中,点 Installed Operators 和 Red Hat Single Sign-On Operator,然后点 Keycloak 选项卡。
点 Create Keycloak 置备新的 Red Hat Single Sign-On 实例来保护 Apicurio Registry 部署。您可以使用默认值,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待实例创建,然后单击 Networking,再单击 Routes 以访问 keycloak 实例的新路由。
- 点 Location URL,并复制以后在部署 Apicurio Registry 时使用的 URL 值。
点 Installed Operators 和 Red Hat Single Sign-On Operator,然后点 Keycloak Realm 选项卡,然后点 Create Keycloak Realm 来创建
registry示例域:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果您要部署到生产环境,则必须使用适合环境的值自定义此
KeycloakRealm资源。您还可以使用 Red Hat Single Sign-On Web 控制台创建和管理域。如果您的集群没有配置有效的 HTTPS 证书,您可以创建以下 HTTP
Service和Ingress资源作为临时临时解决方案:点 Networking,然后点 Services,点 Create Service,使用以下示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 点 Networking,然后点 Ingresses,使用以下示例点击 Create Ingress :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
host值,以创建 Apicurio Registry 用户可访问的路由,并使用它而不是 Red Hat Single Sign-On Operator 创建的 HTTPS 路由。
点 Apicurio Registry Operator,在 ApicurioRegistry 选项卡中,点 Create ApicurioRegistry,使用以下示例替换您的值。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
本节介绍如何为 Apicurio Registry 和 Red Hat Single Sign-On 手动配置身份验证和授权选项。
另外,有关如何自动配置这些设置的详情,请参考 第 5.1 节 “使用 Red Hat Single Sign-On Operator 保护 Apicurio Registry”。
Apicurio Registry web 控制台和核心 REST API 支持基于 OAuth 和 OpenID Connect (OIDC)的 Red Hat Single Sign-On 中的身份验证。相同的 Red Hat Single Sign-On 域和用户在 Apicurio Registry web 控制台和使用 OpenID Connect 中联合,以便您只需要一组凭证。
Apicurio Registry 为默认的 admin、write 和 read-only 用户角色提供基于角色的授权。Apicurio Registry 在 schema 或 API 级别提供基于内容的授权,其中只有 registry 工件的创建者才可以更新或删除它。Apicurio Registry 身份验证和授权设置默认禁用。
前提条件
- Red Hat Single Sign-On 已安装并运行。如需了解更多详细信息,请参阅 Red Hat Single Sign-On 用户文档。
- Apicurio Registry 已安装并运行。
流程
-
在 Red Hat Single Sign-On Admin 控制台中,为 Apicurio Registry 创建 Red Hat Single Sign-On 域。默认情况下,Apicurio Registry 需要一个
registry的域名称。有关创建域的详情,请查看 Red Hat Single Sign-On 用户文档。 为 Apicurio Registry API 创建 Red Hat Single Sign-On 客户端。默认情况下,Apicurio Registry 需要以下设置:
-
客户端 ID:
registry-api -
客户端协议 :
openid-connect 访问类型 :
bearer-only您可以将默认值用于其他客户端设置。
注意如果您使用 Red Hat Single Sign-On 服务帐户,客户端的 Access Type 必须是
confidential而不是bearer-only。
-
客户端 ID:
为 Apicurio Registry web 控制台创建一个 Red Hat Single Sign-On 客户端。默认情况下,Apicurio Registry 需要以下设置:
-
客户端 ID:
apicurio-registry -
客户端协议 :
openid-connect -
访问类型 :
public -
有效的重定向 URL:
http://my-registry-url:8080/* Web Origins:
+您可以将默认值用于其他客户端设置。
-
客户端 ID:
在 OpenShift 上的 Apicurio Registry 部署中,设置以下 Apicurio Registry 环境变量来使用 Red Hat Single Sign-On 配置身份验证:
Expand 表 5.2. 使用红帽单点登录配置 Apicurio Registry 身份验证 环境变量 描述 类型 默认 AUTH_ENABLED为 Apicurio Registry 启用身份验证。当设置为
true时,使用 Red Hat Single Sign-On 进行身份验证需要遵循的环境变量。字符串
falseKEYCLOAK_URLRed Hat Single Sign-On 身份验证服务器的 URL。例如:
http://localhost:8080。字符串
-
KEYCLOAK_REALMRed Hat Single Sign-On 域用于身份验证。例如,
registry。字符串
-
KEYCLOAK_API_CLIENT_IDApicurio Registry REST API 的客户端 ID。
字符串
registry-apiKEYCLOAK_UI_CLIENT_IDApicurio Registry web 控制台的客户端 ID。
字符串
apicurio-registry提示有关在 OpenShift 中设置环境变量的示例,请参阅 第 6.1 节 “在 OpenShift 上配置 Apicurio Registry 健康检查”。
将以下选项设置为
true,以在 Red Hat Single Sign-On 中启用 Apicurio Registry 用户角色:Expand 表 5.3. 配置 Apicurio Registry 基于角色的授权 环境变量 Java 系统属性 类型 默认值 ROLE_BASED_AUTHZ_ENABLEDregistry.auth.role-based-authorization布尔值
false启用 Apicurio Registry 用户角色时,您必须将 Apicurio Registry 用户分配给 Red Hat Single Sign-On 域中至少以下默认用户角色之一:
Expand 表 5.4. 用于 registry 身份验证和授权的默认用户角色 角色 读取工件 编写工件 全局规则 概述 sr-admin是
是
是
完全访问所有创建、读取、更新和删除操作。
sr-developer是
是
否
除了配置全局规则外,访问创建、读取、更新和删除操作。此角色可以配置特定于工件的规则。
sr-readonly是
否
否
只能访问读取和搜索操作。此角色无法配置任何规则。
将以下内容设置为
true,以启用仅限所有者的授权,以更新到 Apicurio Registry 中的 schema 和 API 工件:Expand 表 5.5. 配置仅所有者授权 环境变量 Java 系统属性 类型 默认值 REGISTRY_AUTH_OBAC_ENABLEDregistry.auth.owner-only-authorization布尔值
false
本节介绍如何为 Apicurio Registry 和 Microsoft Azure Active Directory (Azure AD)手动配置身份验证和授权选项。
Apicurio Registry web 控制台和核心 REST API 支持基于 OpenID Connect (OIDC)和 OAuth 授权代码流的 Azure AD 中的身份验证。Apicurio Registry 为默认的 admin、write 和 read-only 用户角色提供基于角色的授权。Apicurio Registry 身份验证和授权设置默认禁用。
要使用 Azure AD 保护 Apicurio Registry,您需要在带有特定配置的 Azure AD 中具有有效目录。这包括在 Azure AD 门户中注册 Apicurio Registry 应用程序,并使用推荐的设置并在 Apicurio Registry 中配置环境变量。
先决条件
- Azure AD 已安装并运行。如需了解更多详细信息,请参阅 Microsoft Azure AD 用户文档。
- Apicurio Registry 已安装并运行。
流程
- 使用您的电子邮件地址或 GitHub 帐户登录到 Azure AD 门户。
在导航菜单中,选择 Manage > App registrations > New registration,并完成以下设置:
-
名称 :输入应用程序名称。例如:
apicurio-registry-example - 支持的帐户类型 :单击 任何组织目录中的 Accounts。
重定向 URI :从列表中选择 Single-page 应用程序,并输入 Apicurio Registry web 控制台应用程序主机。例如:
https://test-registry.com/ui/重要您必须将 Apicurio Registry 应用程序主机注册为 Redirect URI。登录时,用户会从 Apicurio Registry 重定向到 Azure AD 以进行身份验证,并且您想要稍后将其发送回您的应用程序。Azure AD 不允许任何未注册的重定向 URL。
-
名称 :输入应用程序名称。例如:
- 点 Register。您可以通过选择 Manage > App registrations > apicurio-registry-example 来查看应用程序注册详情。
选择 Manage > Authentication,并确保应用程序配置了重定向 URL 和令牌,如下所示:
-
重定向 URI :例如:
https://test-registry.com/ui/ - 隐式授权和混合流程 :单击 ID 令牌(用于隐式和混合流)
-
重定向 URI :例如:
-
选择 Azure AD > Admin > App registrations > your app > Application (client) ID。例如:
123456a7-b8c9-012d-e3f4-5fg67h8i901 -
选择 Azure AD > Admin > App registrations > your app > Directory (tenant) ID。例如:
https://login.microsoftonline.com/1a2bc34d-567e-89f1-g0hi-1j2kl3m4no56/v2.0 在 Apicurio Registry 中,使用 Azure AD 设置配置以下环境变量:
Expand 表 5.6. 在 Apicurio Registry 中为 Azure AD 设置配置 环境变量 描述 设置 KEYCLOAK_API_CLIENT_IDApicurio Registry REST API 的客户端应用程序 ID
在第 5 步中获取的 Azure AD 应用程序(客户端)ID。例如:
123456a7-b8c9-012d-e3f4-5fg67h8i901REGISTRY_OIDC_UI_CLIENT_IDApicurio Registry web 控制台的客户端应用程序 ID。
在第 5 步中获取的 Azure AD 应用程序(客户端)ID。例如:
123456a7-b8c9-012d-e3f4-5fg67h8i901REGISTRY_AUTH_URL_CONFIGUREDAzure AD 中用于身份验证的 URL。
在第 6 步中获取的 Azure AD 应用程序(租户)ID。例如:
https://login.microsoftonline.com/1a2bc34d-567e-89f1-g0hi-1j2kl3m4no56/v2.0。在 Apicurio Registry 中,为特定于 Apicurio Registry 的设置配置以下环境变量:
Expand 表 5.7. 特定于 Apicurio Registry 的设置配置 环境变量 描述 设置 REGISTRY_AUTH_ENABLED为 Apicurio Registry 启用身份验证。
trueREGISTRY_UI_AUTH_TYPEApicurio Registry 身份验证类型。
oidcCORS_ALLOWED_ORIGINSApicurio Registry 部署的主机,用于跨原始资源共享(CORS)。
例如:
https://test-registry.comREGISTRY_OIDC_UI_REDIRECT_URLApicurio Registry web 控制台的主机。
例如:
https://test-registry.com/uiROLE_BASED_AUTHZ_ENABLED在 Apicurio Registry 中启用基于角色的授权。
trueQUARKUS_OIDC_ROLES_ROLE_CLAIM_PATHAzure AD 存储角色的声明的名称。
roles注意当您在 Apicurio Registry 中启用角色时,还必须在 Azure AD 中创建与应用程序角色相同的角色。Apicurio Registry 期望的默认角色为
sr-admin、sr-developer和sr-readonly。
5.4. Apicurio Registry 身份验证和授权配置选项 复制链接链接已复制到粘贴板!
Apicurio Registry 为带有红帽单点登录和 HTTP 基本身份验证的 OpenID Connect 提供身份验证选项。
Apicurio Registry 为基于角色的和基于内容的方法提供授权选项:
- 默认 admin、write 和 read-only 用户角色基于角色的授权。
- 基于内容或 API 工件的授权,只有工件或工件组的所有者才能更新或删除工件。
Apicurio Registry 中的所有身份验证和授权选项都默认禁用。在启用任何这些选项前,您必须首先将 AUTH_ENABLED 选项设置为 true。
本章详细介绍了以下配置选项:
在 Red Hat Single Sign-On 中使用 OpenID Connect 进行 Apicurio Registry 身份验证
您可以设置以下环境变量,以使用 Red Hat Single Sign-On 为 Apicurio Registry web 控制台和 API 配置身份验证:
| 环境变量 | 描述 | 类型 | 默认 |
|---|---|---|---|
|
|
为 Apicurio Registry 启用身份验证。当设置为 | 字符串 |
|
|
|
Red Hat Single Sign-On 身份验证服务器的 URL。例如: | 字符串 | - |
|
|
Red Hat Single Sign-On 域用于身份验证。例如, | 字符串 | - |
|
| Apicurio Registry REST API 的客户端 ID。 | 字符串 |
|
|
| Apicurio Registry web 控制台的客户端 ID。 | 字符串 |
|
使用 HTTP 基本身份验证的 Apicurio Registry 身份验证
默认情况下,Apicurio Registry 支持使用 OpenID Connect 进行身份验证。用户或 API 客户端必须获取访问令牌,才能向 Apicurio Registry REST API 发出经过身份验证的调用。但是,由于某些工具不支持 OpenID Connect,您也可以将 Apicurio Registry 配置为支持 HTTP 基本身份验证,方法是将以下配置选项设置为 true :
| 环境变量 | Java 系统属性 | 类型 | 默认值 |
|---|---|---|---|
|
|
| 布尔值 |
|
|
|
| 布尔值 |
|
Apicurio Registry HTTP 基本客户端凭证缓存到期
您还可以配置 HTTP 基本客户端凭证缓存过期时间。默认情况下,在使用 HTTP 基本身份验证时,Apicurio Registry 会缓存 JWT 令牌,且不需要时不会发出新令牌。您可以为 JWT 令牌配置缓存到期时间,该令牌默认设置为 10 分钟。
使用红帽单点登录时,最好将此配置设置为您的 Red Hat Single Sign-On JWT 到期时间减一分钟。例如,如果您在 Red Hat Single Sign-On 中将过期时间设置为 5 分钟,您应该将以下配置选项设置为 4 分钟:
| 环境变量 | Java 系统属性 | 类型 | 默认值 |
|---|---|---|---|
|
|
| 整数 |
|
Apicurio Registry 基于角色的授权
您可以将以下选项设置为 true,以便在 Apicurio Registry 中启用基于角色的访问控制:
| 环境变量 | Java 系统属性 | 类型 | 默认值 |
|---|---|---|---|
|
|
| 布尔值 |
|
|
|
| 布尔值 |
|
然后,您可以将基于角色的访问控制配置为使用用户身份验证令牌中包含的角色(例如,使用 Red Hat Single Sign-On 进行身份验证时),或者使用 Apicurio Registry 内部管理的角色映射。
使用在 Red Hat Single Sign-On 中分配的角色
要启用使用由 Red Hat Single Sign-On 分配的角色,请设置以下环境变量:
| 环境变量 | 描述 | 类型 | 默认 |
|---|---|---|---|
|
|
当设置为 | 字符串 |
|
|
| 指明用户的角色名称是管理员。 | 字符串 |
|
|
| 指明用户的角色的名称是开发人员。 | 字符串 |
|
|
| 表示用户具有只读访问权限的角色名称。 | 字符串 |
|
当 Apicurio Registry 配置为使用 Red Hat Single Sign-On 中的角色时,您必须将 Apicurio Registry 用户分配给 Red Hat Single Sign-On 中至少以下用户角色之一。但是,您可以使用 表 5.12 “使用红帽单点登录配置 Apicurio Registry 基于角色的授权” 中的环境变量配置不同的用户角色名称。
| 角色名称 | 读取工件 | 编写工件 | 全局规则 | 描述 |
|---|---|---|---|---|
|
| 是 | 是 | 是 | 完全访问所有创建、读取、更新和删除操作。 |
|
| 是 | 是 | 否 | 除了配置全局规则和导入/导出外,访问创建、读取、更新和删除操作。此角色只能配置特定于工件的规则。 |
|
| 是 | 否 | 否 | 只能访问读取和搜索操作。此角色无法配置任何规则。 |
直接管理 Apicurio Registry 中的角色
要使用 Apicurio Registry 内部管理的角色启用,请设置以下环境变量:
| 环境变量 | 描述 | 类型 | 默认 |
|---|---|---|---|
|
|
当设置为 | 字符串 |
|
使用内部管理的角色映射时,可以使用 Apicurio Registry REST API 中的 /admin/roleMappings 端点来为用户分配角色。如需了解更多详细信息,请参阅 Apicurio Registry REST API 文档。
用户可以精确授予一个角色: ADMIN、DEVELOPER 或 READ_ONLY。只有具有管理特权的用户才能授予其他用户的访问权限。
Apicurio Registry admin-override 配置
因为 Apicurio Registry 中没有默认的 admin 用户,因此用户通常有助于将用户识别为 admins。您可以使用以下环境变量配置此 admin-override 功能:
| 环境变量 | 描述 | 类型 | 默认 |
|---|---|---|---|
|
| 启用 admin-override 功能。 | 字符串 |
|
|
|
在何处查找 admin-override 信息。目前只支持 | 字符串 |
|
|
|
用于确定用户是否为管理员的信息类型。值取决于 FROM 变量的值,如 | 字符串 |
|
|
| 指明用户的角色名称是管理员。 | 字符串 |
|
|
| 用于确定 admin-override 的 JWT 令牌声明的名称。 | 字符串 |
|
|
| CLAIM 变量指示的 JWT 令牌声明的值必须是该用户被授予 admin-override。 | 字符串 |
|
例如,您可以使用此 admin-override 功能将 sr-admin 角色分配给 Red Hat Single Sign-On 中的单个用户,这将授予该用户 admin 角色。然后,用户可以使用 /admin/roleMappings REST API (或关联的 UI)为其他用户(包括其他 admins)授予角色。
Apicurio Registry 仅限所有者授权
您可以将以下选项设置为 true,以启用仅所有者授权来更新 Apicurio Registry 中的工件或工件组:
| 环境变量 | Java 系统属性 | 类型 | 默认值 |
|---|---|---|---|
|
|
| 布尔值 |
|
|
|
| 布尔值 |
|
|
|
| 布尔值 |
|
当启用了仅限所有者授权时,只有创建工件的用户才能修改或删除该工件。
当只所有者授权和仅组所有者授权都启用时,只有创建工件组的用户只能对该工件组具有写入访问权限,例如在该组中添加或删除工件。
Apicurio Registry 验证的读访问权限
启用身份验证的 read access 选项时,Apicurio Registry 至少授予对同一机构中任何经过身份验证的用户的只读访问权限,而不考虑其用户角色。
要启用经过身份验证的读取访问权限,您必须首先启用基于角色的访问控制,然后确保将以下选项设置为 true :
| 环境变量 | Java 系统属性 | 类型 | 默认值 |
|---|---|---|---|
|
|
| 布尔值 |
|
|
|
| 布尔值 |
|
如需了解更多详细信息,请参阅 “Apicurio Registry 基于角色的授权”一节。
Apicurio Registry 匿名只读访问
除了两种主要授权类型(基于角色的和基于所有者的授权)外,Apicurio Registry 还支持匿名只读访问选项。
要允许匿名用户(如没有身份验证凭证的 REST API 调用)对 REST API 进行只读调用,请将以下选项设置为 true :
| 环境变量 | Java 系统属性 | 类型 | 默认值 |
|---|---|---|---|
|
|
| 布尔值 |
|
|
|
| 布尔值 |
|
5.5. 从 OpenShift 集群内部配置到 Apicurio Registry 的 HTTPS 连接 复制链接链接已复制到粘贴板!
以下流程演示了如何配置 Apicurio Registry 部署,以便从 OpenShift 集群内部为 HTTPS 连接公开端口。
这种类型的连接不能在集群外直接可用。路由基于主机名,在 HTTPS 连接时进行编码。因此,仍然需要边缘终止或其他配置。请参阅 第 5.6 节 “从 OpenShift 集群外部配置到 Apicurio Registry 的 HTTPS 连接”。
先决条件
- 您必须已安装了 Apicurio Registry Operator。
流程
使用自签名证书生成
密钥存储。如果您使用自己的证书,可以跳过这一步。openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tls.key -out tls.crt
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tls.key -out tls.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个新 secret 来保存证书和私钥。
- 在 OpenShift web 控制台的左侧导航菜单中,点 Workloads > Secrets > Create Key/Value Secret。
-
使用以下值:
Name:https-cert-secret
Key 1:tls.key
Value 1: tls.key (uploaded file)
Key 2:tls.crt
Value 2: tls.crt (uploaded file)
或者使用以下命令创建 secret:
oc create secret generic https-cert-secret --from-file=tls.key --from-file=tls.crt
oc create secret generic https-cert-secret --from-file=tls.key --from-file=tls.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 Apicurio Registry 部署的
ApicurioRegistryCR 的spec.configuration.security.https部分,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证连接是否正常工作:
使用 SSH 连接到集群中的 pod (您可以使用 Apicurio Registry pod):
oc rsh example-apicurioregistry-deployment-6f788db977-2wzpw
oc rsh example-apicurioregistry-deployment-6f788db977-2wzpwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Service 资源查找 Apicurio Registry pod 的集群 IP (请参阅 web 控制台中的 Location 列)。之后,执行测试请求(我们使用自签名证书,因此需要一个不安全的标记):
curl -k https://172.30.230.78:8443/health
curl -k https://172.30.230.78:8443/healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在包含 HTTPS 证书和密钥的 Kubernetes secret 中,必须使用 tls.crt 和 tls.key 的名称作为提供的值。目前这不是可配置的。
禁用 HTTP
如果您使用本节中的步骤启用 HTTPS,您也可以通过将 spec.security.https.disableHttp 设置为 true 来禁用默认的 HTTP 连接。这会从 Apicurio Registry pod 容器、Service 和 NetworkPolicy (如果存在)中删除 HTTP 端口 8080。
最重要的是,Ingress 也被删除,因为 Apicurio Registry Operator 目前不支持在 Ingress 中配置 HTTPS。用户必须手动为 HTTPS 连接创建 Ingress。
5.6. 从 OpenShift 集群外部配置到 Apicurio Registry 的 HTTPS 连接 复制链接链接已复制到粘贴板!
以下流程演示了如何配置 Apicurio Registry 部署,为来自 OpenShift 集群外部的连接公开 HTTPS 边缘终止路由。
先决条件
- 您必须已安装了 Apicurio Registry Operator。
- 阅读用于创建安全路由的 OpenShift 文档。
流程
除了 Apicurio Registry Operator 创建的 HTTP 路由外,添加第二个路由。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保设置了
insecureEdgeTerminationPolicy: Redirect配置属性。如果没有指定证书,OpenShift 将使用默认证书。另外,您可以使用以下命令生成自定义自签名证书:
openssl genrsa 2048 > tls.key && openssl req -new -x509 -nodes -sha256 -days 365 -key tls.key -out tls.crt
openssl genrsa 2048 > tls.key && openssl req -new -x509 -nodes -sha256 -days 365 -key tls.key -out tls.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,使用 OpenShift CLI 创建路由:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 6 章 配置和管理 Apicurio Registry 部署 复制链接链接已复制到粘贴板!
本章解释了如何在 OpenShift 上配置和管理 Apicurio Registry 部署的可选设置:
6.1. 在 OpenShift 上配置 Apicurio Registry 健康检查 复制链接链接已复制到粘贴板!
您可以为存活度和就绪度探测配置可选环境变量,以监控 OpenShift 中的 Apicurio Registry 服务器的健康状态:
- 存活度探测 测试应用是否可以进行进度。如果应用无法进行进度,OpenShift 会自动重启失败的 Pod。
- 就绪度探测 测试应用是否准备好处理请求。如果应用程序未就绪,它可能会被请求超负,OpenShift 会停止向探测失败的时间发送请求。如果其他 Pod 是 OK,则继续接收请求。
存活度和就绪度环境变量的默认值是为大多数情况而设计的,只有在您的环境需要时才应更改。对默认值的任何更改都取决于您的硬件、网络和存储的数据量。这些值应尽可能保持较低,以避免不必要的开销。
先决条件
- 您必须有一个具有集群管理员访问权限的 OpenShift 集群。
- 您必须在 OpenShift 中已安装 Apicurio Registry。
- 您必须在 AMQ Streams 或 PostgreSQL 中安装和配置了您选择的 Apicurio Registry 存储。
流程
- 在 OpenShift Container Platform Web 控制台中,使用具有集群管理员特权的帐户登录。
- 点 Installed Operators > Red Hat Integration - Service Registry Operator。
- 在 ApicurioRegistry 选项卡中,点部署的 Operator 自定义资源,如 example-apicurioregistry。
-
在主概览页面中,找到 Deployment Name 部分以及 Apicurio Registry 部署的对应
DeploymentConfig名称,如 example-apicurioregistry。 -
在左侧导航菜单中,点 Workloads > Deployment Configs,然后选择您的
DeploymentConfig名称。 点 Environment 选项卡,然后在 Single values env 部分中输入您的环境变量,例如:
-
名称:
LIVENESS_STATUS_RESET -
价值:
350
-
名称:
点底部的 Save。
或者,您可以使用 OpenShift
oc命令执行这些步骤。如需了解更多详细信息,请参阅 OpenShift CLI 文档。
6.2. Apicurio Registry 健康检查的环境变量 复制链接链接已复制到粘贴板!
本节论述了 OpenShift 上 Apicurio Registry 健康检查的可用环境变量。这包括存活度和就绪度探测,以监控 OpenShift 中的 Apicurio Registry 服务器的健康状态。如需示例流程,请参阅 第 6.1 节 “在 OpenShift 上配置 Apicurio Registry 健康检查”。
提供以下环境变量仅供参考。默认值是为大多数情况而设计的,只有在您的环境需要时才更改。对默认值的任何更改都取决于您的硬件、网络和存储的数据量。这些值应尽可能保持较低,以避免不必要的开销。
存活度环境变量
| Name | 描述 | 类型 | 默认 |
|---|---|---|---|
|
| 存活度探测失败之前可能出现的存活度问题或错误数量。 | 整数 |
|
|
| 发生阈值错误数的期间。例如,如果这个值为 60,并且阈值为 1,则检查会在 1 分钟内出现两个错误后失败 | 秒 |
|
|
| 存活度探测需要经过的、没有更多错误的秒数,才能重置为 OK 状态。 | 秒 |
|
|
| 以逗号分隔的忽略存活度异常列表。 | 字符串 |
|
由于 OpenShift 会自动重启失败存活度检查的 Pod,存活度设置与就绪度设置不同,因此不会影响 OpenShift 上 Apicurio Registry 的行为。
就绪度环境变量
| Name | 描述 | 类型 | 默认 |
|---|---|---|---|
|
| 就绪度探测失败之前可能出现的就绪问题或错误数量。 | 整数 |
|
|
| 发生阈值错误数的期间。例如,如果这个值为 60,并且阈值为 1,则检查会在 1 分钟内出现两个错误后失败。 | 秒 |
|
|
| 存活度探测需要经过的、没有更多错误的秒数,才能重置为 OK 状态。在这种情况下,这意味着 Pod 保持就绪的时长,直到它返回到正常操作为止。 | 秒 |
|
|
| readiness 跟踪两个操作的超时时间:
如果这些操作需要的时间超过配置的超时时间,这会被计为就绪问题或错误。这个值控制两个操作的超时时间。 | 秒 |
|
6.3. 管理 Apicurio Registry 环境变量 复制链接链接已复制到粘贴板!
Apicurio Registry Operator 管理最常见的 Apicurio Registry 配置,但有一些选项尚不支持。如果 ApicurioRegistry CR 中没有高级别配置选项,您可以使用环境变量来调整它。您可以通过在 spec.configuration.env 字段中直接在 ApicurioRegistry CR 中设置环境变量来更新它们。然后,它们将转发到 Apicurio Registry 的 Deployment 资源。
流程
您可以使用 OpenShift Web 控制台或 CLI 管理 Apicurio Registry 环境变量。
- OpenShift web 控制台
- 选择 Installed Operators 选项卡,然后选择 Red Hat Integration - Service Registry Operator。
-
在 Apicurio Registry 选项卡中,点 Apicurio Registry 部署的
ApicurioRegistryCR。 点 YAML 选项卡,然后根据需要编辑
spec.configuration.env部分。以下示例演示了如何设置默认全局内容规则:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- OpenShift CLI
- 选择安装 Apicurio Registry 的项目。
-
运行
oc get apicurioregistry以获取ApicurioRegistryCR 列表 -
在代表您要配置的 Apicurio Registry 实例的 CR 上运行
oc edit apicurioregistry。 在
spec.configuration.env部分添加或修改环境变量。Apicurio Registry Operator 可能会尝试设置在
spec.configuration.env字段中明确指定的环境变量。如果环境变量配置有冲突的值,则 Apicurio Registry Operator 设置的值会优先使用。您可以使用该功能的高级配置或使用显式指定的环境变量来避免这种冲突。以下是冲突配置示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此配置会导致 Apicurio Registry web 控制台处于只读模式。
6.4. 使用 PodTemplate 配置 Apicurio Registry 部署 复制链接链接已复制到粘贴板!
这只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。
这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview。
ApicurioRegistry CRD 包含 spec.deployment.podTemplateSpecPreview 字段,它的结构与 Kubernetes Deployment 资源( PodTemplateSpec struct)中的字段 spec.template 相同。
有了一些限制,Apicurio Registry Operator 将来自此字段的数据转发到 Apicurio Registry 部署中的对应字段。这提供了更大的灵活性,而无需 Apicurio Registry Operator 原生支持每个用例。
下表包含 Apicurio Registry Operator 不接受的子字段列表,并导致配置错误:
podTemplateSpecPreview subfield | Status | 详情 |
|---|---|---|
|
| 其它方法存在 |
|
|
| 其它方法存在 |
|
|
| 其它方法存在 |
|
|
| warning |
要配置 Apicurio Registry 容器,必须使用 |
|
| 其它方法存在 |
|
|
| 保留 | - |
|
| 其它方法存在 |
|
|
| 其它方法存在 |
|
如果在 podTemplateSpecPreview 中设置了字段,则其值必须有效,就像您在 Apicurio Registry Deployment 中直接配置一样。Apicurio Registry Operator 仍然可能会修改您提供的值,但不会修复无效的值,或者确保存在默认值。
6.5. 配置 Apicurio Registry web 控制台 复制链接链接已复制到粘贴板!
您可以设置可选环境变量来配置 Apicurio Registry web 控制台,专门用于部署环境或自定义其行为。
前提条件
- 已安装 Apicurio Registry。
配置 Web 控制台部署环境
当您在浏览器中访问 Apicurio Registry web 控制台时,会载入一些初始配置设置。以下配置设置非常重要:
- 核心 Apicurio Registry 服务器 REST API 的 URL
- Apicurio Registry web 控制台客户端的 URL
通常,Apicurio Registry 会自动检测并生成这些设置,但有一些部署环境,这个自动检测可能会失败。如果发生这种情况,您可以配置环境变量来为您的环境明确设置这些 URL。
流程
配置以下环境变量以覆盖默认 URL:
-
REGISTRY_UI_CONFIG_APIURL:指定核心 Apicurio Registry 服务器 REST API 的 URL。例如:https://registry.my-domain.com/apis/registry -
REGISTRY_UI_CONFIG_UIURL:指定 Apicurio Registry Web 控制台客户端的 URL。例如:https://registry.my-domain.com/ui
以只读模式配置 Web 控制台
您可以在只读模式下配置 Apicurio Registry web 控制台作为可选功能。此模式禁用 Apicurio Registry web 控制台中的所有功能,允许用户更改注册工件。例如,这包括以下内容:
- 创建工件
- 上传新的工件版本
- 更新工件元数据
- 删除工件
流程
配置以下环境变量:
-
REGISTRY_UI_FEATURES_READONLY: 设置为true以启用只读模式。默认值为false。
6.6. 配置 Apicurio Registry 日志记录 复制链接链接已复制到粘贴板!
您可以在运行时设置 Apicurio Registry 日志记录配置。Apicurio Registry 提供了一个 REST 端点,用于为特定日志记录器设置日志级别,以进行精细的日志记录。本节介绍如何使用 Apicurio Registry /admin REST API 在运行时查看和设置 Apicurio Registry 日志级别。
前提条件
-
获取用于访问 Apicurio Registry 实例的 URL,如果 OpenShift 上部署了 Apicurio Registry 路由,则获取您的 Apicurio Registry 路由。此简单示例使用
localhost:8080的 URL。
流程
使用此
curl命令获取日志记录器io.apicurio.registry.storage的当前日志级别:curl -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}$ curl -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用此
curl命令将 loggerio.apicurio.registry.storage的日志级别更改为DEBUG:curl -X PUT -i -H "Content-Type: application/json" --data '{"level":"DEBUG"}' localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"DEBUG"}$ curl -X PUT -i -H "Content-Type: application/json" --data '{"level":"DEBUG"}' localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"DEBUG"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用此
curl命令将 loggerio.apicurio.registry.storage的日志级别恢复到其默认值:curl -X DELETE -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}$ curl -X DELETE -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7. 配置 Apicurio Registry 事件源 复制链接链接已复制到粘贴板!
这只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。
这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview。
您可以将 Apicurio Registry 配置为在对 registry 内容进行更改时发送事件。例如,Apicurio Registry 可以在创建、更新、删除等模式或 API 工件、组或内容规则时触发事件。您可以将 Apicurio Registry 配置为将事件发送到应用程序和第三方集成,以进行这些更改。
有不同的协议可用于传输事件。当前实现的协议是 HTTP 和 Apache Kafka。但是,无论协议如何,事件都是使用 CNCF CloudEvents 规格发送的。您可以使用 Java 系统属性或等同的环境变量来配置 Apicurio Registry 事件源。
Apicurio Registry 事件类型
所有事件类型都在 io.apicurio.registry.events.dto.RegistryEventType 中定义。例如,这包括以下事件类型:
-
io.apicurio.registry.artifact-created -
io.apicurio.registry.artifact-updated -
io.apicurio.registry.artifact-state-changed -
io.apicurio.registry.artifact-rule-created -
io.apicurio.registry.global-rule-created -
io.apicurio.registry.group-created
先决条件
- 您必须具有要发送 Apicurio Registry 云事件的应用程序。例如,这可以是自定义应用程序或第三方应用程序。
使用 HTTP 配置 Apicurio Registry 事件源
本节中的示例显示了在 http://my-app-host:8888/events 上运行的自定义应用程序。
流程
使用 HTTP 协议时,将 Apicurio Registry 配置设置为将事件发送到应用程序,如下所示:
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
-
如果需要,您可以按照以下方法配置多个事件消费者:
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events -
registry.events.sink.other-consumer=http://my-consumer.com/events
-
使用 Apache Kafka 配置 Apicurio Registry 事件源
本节中的示例显示了在 my-kafka-host:9092 上运行的名为 my-registry-events 的 Kafka 主题。
流程
使用 Kafka 协议时,设置 Kafka 主题,如下所示:
-
registry.events.kafka.topic=my-registry-events
-
您可以使用
KAFKA_BOOTSTRAP_SERVERS环境变量设置 Kafka producer 的配置:KAFKA_BOOTSTRAP_SERVERS=my-kafka-host:9092另外,您可以使用
registry.events.kafka.config前缀为 kafka producer 设置属性,例如:registry.events.kafka.config.bootstrap.servers=my-kafka-host:9092
如果需要,您还可以将 Kafka 主题分区设置为用来生成事件:
-
registry.events.kafka.topic-partition=1
-
第 7 章 Apicurio Registry Operator 配置参考 复制链接链接已复制到粘贴板!
本章提供有关用于配置 Apicurio Registry Operator 用于部署 Apicurio Registry 的自定义资源的详细信息:
7.1. Apicurio Registry 自定义资源 复制链接链接已复制到粘贴板!
Apicurio Registry Operator 定义了一个 ApicurioRegistry 自定义资源(CR),它代表 OpenShift 上的 Apicurio Registry 的单一部署。
这些资源对象由用户创建和维护,以指示 Apicurio Registry Operator 如何部署和配置 Apicurio Registry。
ApicurioRegistry CR 示例
以下命令显示 ApicurioRegistry 资源:
oc get apicurioregistry oc edit apicurioregistry example-apicurioregistry
oc get apicurioregistry
oc edit apicurioregistry example-apicurioregistry
默认情况下,Apicurio Registry Operator 只监视自己的项目命名空间。因此,如果您手动部署 Operator,则必须在同一命名空间中创建 ApicurioRegistry CR。您可以通过更新 Operator Deployment 资源中的 WATCH_NAMESPACE 环境变量来修改此行为。
7.2. Apicurio Registry CR spec 复制链接链接已复制到粘贴板!
spec 是 ApicurioRegistry CR 的一部分,用于为 Operator 实现的 Operator 提供所需状态或配置。
ApicurioRegistry CR spec 内容
以下示例块包含可能的 spec 配置选项的完整树。有些字段可能不是必填的,或者不应该同时定义。
下表描述了每个配置选项:
| 配置选项 | type | 默认值 | 描述 |
|---|---|---|---|
|
| - | - | 用于配置 Apicurio Registry 应用程序的部分 |
|
| 字符串 | required |
存储后端. |
|
| - | - | SQL 存储后端配置 |
|
| - | - | SQL 存储后端的数据库连接配置 |
|
| 字符串 | required | 数据库连接 URL 字符串 |
|
| 字符串 | required | 数据库连接用户 |
|
| 字符串 | empty | 数据库连接密码 |
|
| - | - | Kafka 存储后端配置 |
|
| 字符串 | required | Kafka bootstrap 服务器 URL,用于 Streams 存储后端 |
|
| - | - | 为 Kafka 存储后端配置 TLS 身份验证的部分 |
|
| 字符串 | required | 包含 Kafka 的 TLS 信任存储的 secret 名称 |
|
| 字符串 | required | 包含用户 TLS 密钥存储的机密名称 |
|
| 字符串 | required | 包含 Kafka 的 TLS 信任存储的 secret 名称 |
|
| 字符串 | required | SCRAM 用户名 |
|
| 字符串 | required | 包含 SCRAM 用户密码的 secret 名称 |
|
| 字符串 |
| SASL 机制 |
|
| - | - | Apicurio Registry web 控制台设置 |
|
| 字符串 |
| 将 Apicurio Registry web 控制台设置为只读模式 |
|
| 字符串 |
|
Apicurio Registry 日志级别,用于非Apicurio 组件和库。 |
|
| 字符串 |
|
Apicurio Registry 日志级别,用于 Apicurio 应用程序组件(excludes non-Apicurio 组件和库)。 |
|
| - | - | Apicurio Registry web 控制台和 REST API 安全设置 |
|
| - | - | 使用红帽单点登录的 Web 控制台和 REST API 安全配置 |
|
| 字符串 | required | Red Hat Single Sign-On URL |
|
| 字符串 | required | Red Hat Single Sign-On realm |
|
| 字符串 |
| 用于 REST API 的 Red Hat Single Sign-On 客户端 |
|
| 字符串 |
| Red Hat Single Sign-On 客户端用于 Web 控制台 |
|
| - | - | 配置 HTTPS。如需了解更多详细信息,请参阅 从 OpenShift 集群内部配置到 Apicurio Registry 的 HTTPS 连接。 |
|
| 字符串 | empty |
包含 HTTPS 证书和密钥的 Kubernetes Secret 名称,必须分别命名为 |
|
| bool |
| 禁用 HTTP 端口和 Ingress。HTTPS 必须作为先决条件启用。 |
|
| k8s.io/api/core/v1 []EnvVar | empty | 配置要提供给 Apicurio Registry pod 的环境变量列表。如需了解更多详细信息,请参阅管理 Apicurio Registry 环境变量。 |
|
| - | - | Apicurio Registry 部署设置的部分 |
|
| 正整数 |
| 要部署的 Apicurio Registry pod 数量 |
|
| 字符串 | 自动生成的 | 提供 Apicurio Registry 控制台和 API 的主机/URL。如果可能,Apicurio Registry Operator 会尝试根据集群路由器的设置来确定正确的值。该值仅自动生成一次,因此用户之后才能覆盖它。 |
|
| k8s.io/api/core/v1 Affinity | empty | Apicurio Registry 部署配置 |
|
| k8s.io/api/core/v1 []Toleration | empty | Apicurio Registry 部署容限配置 |
|
| k8s.io/api/core/v1 []LocalObjectReference | empty | 为 Apicurio Registry 部署配置镜像 pull secret |
|
| - | - | 为 Apicurio Registry pod 配置一组标签或注解。 |
|
| map[string]string | empty | 为 Apicurio Registry pod 配置一组标签 |
|
| map[string]string | empty | 为 Apicurio Registry pod 配置一组注解 |
|
| - | - | 配置 Apicurio Registry Operator 如何管理 Kubernetes 资源的部分。如需了解更多详细信息,请参阅 Apicurio Registry 管理的资源。 |
|
| bool |
|
如果设置,Operator 将不会创建和管理 Apicurio Registry 部署的 |
|
| bool |
|
如果设置,Operator 将不会创建和管理 Apicurio Registry 部署的 |
|
| bool |
|
如果设置,Operator 将不会创建和管理 Apicurio Registry 部署的 |
|
| k8s.io/api/core/v1 PodTemplateSpec | empty | 配置 Apicurio Registry 部署资源的部分。如需了解更多详细信息,请参阅使用 PodTemplate 配置 Apicurio Registry 部署。 |
如果某个选项标记为 必需,则可能对要启用的其他配置选项有条件。可以接受空值,但 Operator 不执行指定的操作。
7.3. Apicurio Registry CR 状态 复制链接链接已复制到粘贴板!
status 是 Apicurio Registry Operator 管理的 CR 部分,其中包含当前部署和应用程序状态的描述。
ApicurioRegistry CR 状态内容
status 部分包含以下字段:
| status 字段 | 类型 | 描述 |
|---|---|---|
|
| - | 包含关于部署的 Apicurio Registry 的信息的部分。 |
|
| string | 可以访问 Apicurio Registry UI 和 REST API 的 URL。 |
|
| - | 报告 Apicurio Registry 状态或与该部署相关的 Operator 的条件列表。 |
|
| 字符串 | 条件的类型。 |
|
| 字符串 |
条件的状态, |
|
| 字符串 | 一个编程标识符,指示条件最后一次转换的原因。 |
|
| 字符串 | 人类可读的消息,指示有关转换的详细信息。 |
|
| 字符串 | 条件从一个状态转换到另一个状态最后一次的时间。 |
|
| - | 由 Apicurio Registry Operator 管理的 OpenShift 资源列表 |
|
| 字符串 | 资源类型。 |
|
| 字符串 | 资源命名空间。 |
|
| 字符串 | 资源名称。 |
7.4. Apicurio Registry 管理的资源 复制链接链接已复制到粘贴板!
在部署 Apicurio Registry 时,由 Apicurio Registry Operator 管理的资源如下:
-
Deployment -
Ingress(和路由) -
NetworkPolicy -
PodDisruptionBudget -
service
您可以禁用 Apicurio Registry Operator 来创建和管理某些资源,因此可以手动配置。这在使用 Apicurio Registry Operator 当前不支持的功能时提供了更大的灵活性。
如果您禁用资源类型,则其现有实例将被删除。如果启用资源,Apicurio Registry Operator 会尝试使用 app 标签查找资源,如 app=example-apicurioregistry,并开始管理它。否则,Operator 会创建一个新实例。
您可以以这种方式禁用以下资源类型:
-
Ingress(和路由) -
NetworkPolicy -
PodDisruptionBudget
例如:
7.5. Apicurio Registry Operator 标签 复制链接链接已复制到粘贴板!
Apicurio Registry Operator 管理的资源通常被标记为如下:
| 标签 | 描述 |
|---|---|
|
|
根据指定 |
|
|
部署类型: |
|
|
部署名称:值与 |
|
| Apicurio Registry 或 Apicurio Registry Operator 的版本 |
|
| 一组用于应用程序部署的推荐 Kubernetes 标签。 |
|
| 红帽产品的计量标签。 |
自定义标签和注解
您可以使用 spec.deployment.metadata.labels 和 spec.deployment.metadata.annotations 字段为 Apicurio Registry pod 提供自定义标签和注解,例如:
第 8 章 Apicurio Registry 配置参考 复制链接链接已复制到粘贴板!
本章提供了关于 Apicurio Registry 可用的配置选项的参考信息。
其他资源
-
有关使用 Core Registry API 设置配置选项的详情,请参考 Apicurio Registry REST API 文档中的
/admin/config/properties端点。 - 有关 Kafka serializers 和 deserializers 的客户端配置选项的详情,请参阅 红帽构建的 Apicurio Registry 用户指南。
8.1. Apicurio Registry 配置选项 复制链接链接已复制到粘贴板!
每个组件类别都提供了以下 Apicurio Registry 配置选项:
8.1.1. api 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 在错误响应中包含堆栈追踪 |
|
|
|
| 禁用 API |
8.1.2. auth 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| Auth 管理员覆盖声明 |
|
|
|
|
| Auth 管理员覆盖声明值 |
|
|
|
|
| 启用 auth 管理员覆盖 |
|
|
|
|
| Auth admin 覆盖 |
|
|
|
|
| Auth admin 覆盖角色 |
|
|
|
|
| Auth admin 覆盖类型 |
|
|
|
|
| 匿名读取访问 |
|
|
|
|
| 用于应用程序审计日志记录的前缀。 |
|
|
|
|
| 验证的读取访问权限 |
|
|
|
|
| 默认客户端凭证令牌过期时间。 |
|
|
|
|
| 客户端凭据到期来自 JWT 过期。 |
|
|
|
|
| 启用基本身份验证客户端凭证 |
|
|
|
| 客户端凭据范围。 | |
|
|
|
| 服务器用于身份验证的客户端标识符。 | |
|
|
|
| 服务器用于身份验证的客户端机密。 | |
|
|
|
|
| 启用 auth |
|
|
|
|
| 工件仅所有者授权 |
|
|
|
|
| 工件组所有者授权 |
|
|
|
|
| 启用基于角色的授权 |
|
|
|
|
| 身份验证角色源 |
|
|
|
| 标头授权名称 | |
|
|
|
|
| 身份验证角色 admin |
|
|
|
|
| 身份验证角色开发人员 |
|
|
|
|
| Auth 角色只读 |
|
|
|
|
| 启用 auth 租户所有者 admin |
|
|
|
| 身份验证服务器 url. |
8.1.3. 缓存 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 启用 registry 缓存 |
8.1.4. ccompat 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 通过主题中的串联(兼容性 API)启用组支持。 |
|
|
|
|
| 启用组串联时要使用的分隔符(兼容性 API) |
|
|
|
|
| 传统 ID 模式(兼容性 API) |
|
|
|
|
| 返回的最大主题数(兼容性 API) |
|
|
|
|
| 规范哈希模式(兼容性 API) |
8.1.5. 下载 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 下载链接到期 |
8.1.6. events 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
| 启用事件 Kafka sink |
8.1.7. 健康 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
| 忽略的存活度错误 | |
|
|
|
|
| 计数器重置持久性存活度检查的窗口持续时间 |
|
|
|
|
| 禁用持久性存活度检查的日志记录 |
|
|
|
|
| 持久性存活度检查的错误阈值 |
|
|
|
|
| 持久性存活度检查的状态重置窗口持续时间 |
|
|
|
|
| 计数器重置持久性就绪度检查的窗口持续时间 |
|
|
|
|
| 持久性就绪度检查的错误阈值 |
|
|
|
|
| 状态重置持久性就绪度检查的窗口持续时间 |
|
|
|
|
| 持久性就绪度检查超时 |
|
|
|
|
| 计数器重置响应存活度检查的窗口持续时间 |
|
|
|
|
| 禁用响应存活度检查的日志 |
|
|
|
|
| 响应存活度检查的错误阈值 |
|
|
|
|
| 响应存活度检查的状态重置窗口持续时间 |
|
|
|
|
| 计数器重置响应就绪度检查的窗口持续时间 |
|
|
|
|
| 响应就绪度检查的错误阈值 |
|
|
|
|
| 响应就绪度检查的状态重置窗口持续时间 |
|
|
|
|
| 响应就绪度检查的超时 |
|
|
|
|
| 存储指标缓存检查周期 |
8.1.8. import 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
| 导入 URL |
8.1.9. kafka 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
| 事件 Kafka 主题 | |
|
|
|
| 事件 Kafka 主题分区 |
8.1.10. limits 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 最大工件标签 |
|
|
|
|
| 最大工件属性 |
|
|
|
|
| 最大工件数 |
|
|
|
|
| 最大工件描述长度 |
|
|
|
|
| 最大工件标签大小 |
|
|
|
|
| 最大工件名称长度 |
|
|
|
|
| 最大工件属性密钥大小 |
|
|
|
|
| max artifact 属性值大小 |
|
|
|
|
| 每秒的最大工件请求 |
|
|
|
|
| 最大模式大小(字节) |
|
|
|
|
| 最大总模式 |
|
|
|
|
| 每个工件的最大版本 |
|
|
|
|
| 存储指标缓存最大大小。 |
8.1.11. log 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
| 日志级别 |
8.1.12. mt 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 启用多租户 |
|
|
|
|
| 启用独立多租户模式。在这个模式中,Registry 提供基本的多租户功能,而不依赖于其他组件来管理租户及其元数据。只有在第一次从请求中提取租户 ID 时,就会立即创建一个新租户。租户 ID 必须在外部管理,并且可通过删除租户的数据来有效地删除租户。 |
|
|
|
|
| 启用多租户授权 |
|
|
|
| 多租户获取每个 | |
|
|
|
|
| 多租户获取了最大租户数 |
|
|
|
|
| 多租户收发器期间的秒数 |
|
|
|
| 用于解析租户 ID 的令牌声明 | |
|
|
|
|
| 多租户上下文路径类型基本路径 |
|
|
|
|
| 启用多租户上下文路径类型 |
|
|
|
|
| 启用多租户请求标头类型 |
|
|
|
|
| 多租户请求标头类型名称 |
|
|
|
|
| 启用多租户子域类型 |
|
|
|
|
| 多租户子域类型标头名称 |
|
|
|
|
| 多租户子域类型位置 |
|
|
|
|
| 多租户子域类型模式 |
|
|
|
|
| 启用多租户请求标头类型 |
|
|
|
| 机构 ID 声明名称 | |
|
|
|
| 租户管理器验证客户端 ID | |
|
|
|
| 租户管理器身份验证客户端 secret | |
|
|
|
| 启用租户管理器验证 | |
|
|
|
| 租户管理器身份验证令牌过期时间减少 ms | |
|
|
|
| 配置租户管理器验证 url | |
|
|
|
| 租户管理器 SSL Ca 路径 | |
|
|
|
| 租户管理器 URL | |
|
|
|
|
| 租户上下文缓存检查周期 |
|
|
|
|
| 租户上下文缓存最大大小 |
8.1.13. Redirect 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
| 启用重定向 | |
|
|
|
| registry 重定向 | |
|
|
|
| 覆盖用于生成外部访问 URL 的主机名。在部署带有 HTTPS 透传 Ingress 或 Route 的 Registry 时,主机和端口覆盖很有用。在这些情况下,对重定向重新使用的请求 URL (和端口)不属于客户端使用的实际外部 URL,因为请求会被代理。然后重定向会失败,因为目标 URL 无法访问。 | |
|
|
|
| 覆盖用于生成外部访问 URL 的端口。 |
8.1.14. rest 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 启用工件版本删除 |
|
|
|
|
| 允许从 URL 下载的工件的最大大小 |
|
|
|
|
| 从 URL 下载工件时跳过 SSL 验证 |
8.1.15. store 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 在检索最新工件版本时跳过带有 DISABLED 状态的工件版本 |
|
|
|
|
| 数据源 Db 类型 |
|
|
|
| 数据源 jdbc URL | |
|
|
|
|
| SQL init |
8.1.16. ui 复制链接链接已复制到粘贴板!
| Name | 类型 | default | 可从以下位置获取 | 描述 |
|---|---|---|---|---|
|
|
|
|
| 启用 UI OIDC 租户 |
|
|
|
| UI API URL | |
|
|
|
|
| UI 身份验证 OIDC 客户端 ID |
|
|
|
|
| UI 身份验证 OIDC 重定向 URL |
|
|
|
|
| UI 身份验证 OIDC URL |
|
|
|
|
| UI 身份验证类型 |
|
|
|
|
| 启用 UI codegen |
|
|
|
|
| UI 上下文路径 |
|
|
|
|
| UI 只读模式 |
|
|
|
|
| UI 功能设置 |
|
|
|
| 覆盖 UI root 上下文(在使用入站代理重新定位 UI 上下文时很有用) |
附录 A. 使用您的订阅 复制链接链接已复制到粘贴板!
Apicurio Registry 通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。
访问您的帐户
- 转至 access.redhat.com。
- 如果您还没有帐户,请创建一个帐户。
- 登录到您的帐户。
激活订阅
- 转至 access.redhat.com。
- 导航到 My Subscriptions。
- 导航到 激活订阅 并输入您的 16 位激活号。
下载 ZIP 和 TAR 文件
要访问 ZIP 或 TAR 文件,请使用客户门户网站查找要下载的相关文件。如果您使用 RPM 软件包,则不需要这一步。
- 打开浏览器并登录红帽客户门户网站 产品下载页面,网址为 access.redhat.com/downloads。
- 在 Integration 和 Automation 类别中找到 Red Hat Integration 条目。
- 选择所需的 Apicurio Registry 产品。此时会打开 Software Downloads 页面。
- 单击组件的 Download 链接。
更新于 2025-06-23