2.4. 使用 Operator 部署 3scale
本节介绍了使用 APIManager CR 通过 3scale 操作器安装和部署 3scale 解决方案。
自 3scale 2.6 起,已删除 通配符路由。
- 这个功能由 Zync 在后台处理。
- 创建、更新或删除 API 提供程序时,路由会自动反映这些更改。
先决条件
- 配置容器 registry 身份验证
- 要确保您收到 3scale 的微版本的自动更新,您必须在 3scale operator 中启用自动批准功能。自动 是默认的批准设置。要随时根据您的特定需求更改,请使用 配置微版本的自动应用程序 的步骤。
- 首先使用操作器部署 3scale 要求您按照在 OpenShift 上安装 3scale Operator中的步骤进行操作
OpenShift Container Platform 4
- 在 OpenShift 集群中具有管理员特权的用户帐户。
- 有关支持配置的更多信息,请参阅 Red Hat 3scale API 管理支持的配置 页面。
按照以下步骤,使用 Operator 部署 3scale:
2.4.1. 部署 APIManager 自定义资源
如果您决定使用 Amazon Simple Storage Service (Amazon S3),请参阅 Amazon Simple Storage Service 3scale FileStorage 安装。
Operator 会监视 APIManager CR,并部署所需的 3Scale 解决方案,如 APIManager CR 中指定的。
流程
点 Operators > Installed Operators。
- 从 Installed Operators 列表中,点 Red Hat Integration - 3scale。
- 点 API Manager 选项卡。
- 点 Create APIManager。
清除示例内容,并将以下 YAML 定义添加到编辑器中,然后单击 Create。
在 3scale 2.8 之前,您可以通过将
HighAvailability
字段设置为true
来配置自动添加副本。从 3scale 2.8 开始,对副本的添加会通过 APIManager CR 中的 replicas 字段来控制,如下例所示。注意wildcardDomain 参数的值必须是解析到 OpenShift Container Platform (OCP) 路由器地址的有效域名。例如
apps.mycluster.example.com
。具有最低要求的 APIManager CR:
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: apimanager-sample spec: wildcardDomain: example.com
配置副本的 APIManager CR:
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: apimanager-sample spec: system: appSpec: replicas: 1 sidekiqSpec: replicas: 1 zync: appSpec: replicas: 1 queSpec: replicas: 1 backend: cronSpec: replicas: 1 listenerSpec: replicas: 1 workerSpec: replicas: 1 apicast: productionSpec: replicas: 1 stagingSpec: replicas: 1 wildcardDomain: example.com
2.4.2. 获取管理门户 URL
当您使用 operator 部署 3scale 时,会创建一个默认租户,它有一个固定的 URL: 3scale-admin.${wildcardDomain}
3scale 控制面板显示租户的新门户 URL。例如,如果 <wildCardDomain> 为 3scale-project.example.com
,则管理门户 URL 为 https://3scale-admin.3scale-project.example.com
。
wildcardDomain
是您在安装过程中提供的 <wildCardDomain> 参数。使用这个命令在浏览器中打开这个唯一 URL:
xdg-open https://3scale-admin.3scale-project.example.com
另外,您还可以在 MASTER 门户 URL 上创建新的租户:master.${wildcardDomain}
。
2.4.3. 获取 APIManager 管理门户和主管理门户凭证
要在基于 operator 的部署后登录到 3scale 管理门户或 Master 管理门户,您需要每个单独的门户的凭证。要获得以下凭证:
运行以下命令来获取 Admin Portal 凭证:
oc get secret system-seed -o json | jq -r .data.ADMIN_USER | base64 -d oc get secret system-seed -o json | jq -r .data.ADMIN_PASSWORD | base64 -d
- 以 Admin Portal 管理员身份登录,以验证这些凭据是否正常工作。
运行以下命令来获取主管理门户凭证:
oc get secret system-seed -o json | jq -r .data.MASTER_USER | base64 -d oc get secret system-seed -o json | jq -r .data.MASTER_PASSWORD | base64 -d
- 以 Master Admin Portal 管理员身份登录,以验证这些凭据是否正常工作。
其他资源
如需有关 APIManager 字段的更多信息,请参阅参考文档。
2.4.4. 使用 Operator 的 3scale 的外部数据库
从 Red Hat 3scale API 管理部署外部化数据库时,这意味着与应用程序分离,并对在数据库一级的服务中断有一定的弹性。服务中断的恢复取决于您托管数据库的基础架构或平台供应商提供的服务级别协议 (SLA)。3scale 不提供此功能。有关您选择的部署提供的数据库外部化的详情,请查看相关的文档。
当您使用 operator 为 3scale 使用外部数据库时,如果一个或多个数据库失败,则目的是提供不间断的运行时间。
如果您在基于 3scale Operator 的部署中使用外部数据库,请注意以下几点:
- 在外部配置和部署 3scale 关键数据库。关键数据库包括系统数据库、系统 redis 和后端 redis 组件。确保您以使其具有高可用性的方式部署和配置这些组件。
在部署 3scale 前,通过创建对应的 Kubernetes secret 来为 3scale 指定到这些组件的连接端点。
- 如需更多信息,请参阅外部数据库安装。
- 如需有关非数据库部署配置的更多信息,请参阅启用 Pod Disruption Budgets。
在 APIManager CR 中,设置
.spec.externalComponents
属性来指定系统数据库、系统 redis 和 backend redis 是外部:externalComponents: backend: redis: true system: database: true redis: true zync: database: true
另外,如果您希望 zync 数据库高度可用,为了避免 zync 可能会在重启时丢失队列作业数据,请注意:
- 在外部部署和配置 zync 数据库。确保以高可用性方式部署和配置数据库。
通过在部署 3scale 前创建对应的 Kubernetes secret,指定到 3scale 的 zync 数据库的连接端点。
- 请参阅 Zync 数据库 secret。
-
通过将
APIManager
CR 中的.spec.externalComponents.zync.database
属性设为true
来配置 3scale,以指定 zync 数据库是一个外部数据库。