2.5. 使用 Operator 部署 3scale
本节介绍了使用 APIManager 自定义资源通过 3scale 操作器安装和部署 3scale 解决方案。
自 3scale 2.6 起,已删除 通配符路由。
- 这个功能由 Zync 在后台处理。
- 创建、更新或删除 API 提供程序时,路由会自动反映这些更改。
先决条件
- 配置容器 registry 身份验证
- 要确保您收到 3scale 的微版本的自动更新,您必须在 3scale operator 中启用自动批准功能。自动 是默认的批准设置。要随时根据您的特定需求更改,请使用 配置微版本的自动应用程序 的步骤。
- 首先使用操作器部署 3scale 要求您按照在 OpenShift 上安装 3scale Operator中的步骤进行操作
OpenShift Container Platform 4
- 在 OpenShift 集群中具有管理员特权的用户帐户。
- 备注:OCP 4 支持仅使用操作器部署 3scale。
- 有关支持配置的更多信息,请参阅 Red Hat 3scale API 管理支持的配置 页面。
按照以下步骤,使用 Operator 部署 3scale:
2.5.1. 部署 APIManager 自定义资源
部署 APIManager 自定义资源将使 Operator 开始处理,并从中部署 3scale 解决方案。
流程
点 Operators > Installed Operators。
- 从 Installed Operators 列表中,点 3scale Operator。
- 点 API Manager 选项卡。
- 点 Create APIManager。
清除示例内容,并将以下 YAML 定义添加到编辑器中,然后单击 Create。
在 3scale 2.8 之前,您可以通过将
HighAvailability
字段设置为true
来配置自动添加副本。从 3scale 2.8 开始,对副本的添加会通过 APIManager CR 中的 replicas 字段来控制,如下例所示。注意wildcardDomain 参数可以是您想要将该解析为 IP 地址的任何所需名称,而 IP 地址是一个有效的 DNS 域。
具有最低要求的 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.5.2. 获取 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.5.3. 获取管理门户 URL
当使用操作器部署 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.5.4. 配置微版本的自动应用程序
要获得微版本更新并使其被自动应用,3scale Operator 的批准策略必须设置为 Automatic。下面描述了自动和手动设置之间的区别,并概述了从一个设置改为另一个流程的步骤。
自动和手动:
- 在安装过程中,自动设置是所选选项。随着新的更新可用,就会安装新的更新。您可以在安装过程中或之后更改。
- 如果您在安装过程中或以后选择了 Manual 选项,会在有可用情况下收到更新。接下来,您必须批准 Install Plan,并自行应用。
流程
- 点 Operators > Installed Operators。
- 从 Installed Operators 列表中,单击 3scale API Management。
- 点 Subscription 标签页。在 Subscription Details 标题下,您将看到子标题 Approval。
- 点 Approval 下的链接。默认情况下,链接设置为 Automatic。系统将弹出一个标题为 Change Update Approval Strategy 的模态。
- 选择您首选的选项:自动(默认) 或 Manual,然后单击 Save。
其他资源
- 请参阅 OperatorHub 安装 Operator 下的批准策略。
2.5.5. 使用 Operator 的 3scale 的高可用性
使用 operator 的 3scale 中的高可用性(HA) 提供不间断的运行时间(例如,在一个或多个数据库失败的情况下继续工作)。
如果要在基于 operator 部署的 3scale 中实现高可用性,请注意以下几点:
- 在外部配置和部署 3scale 关键数据库。关键数据库包括系统数据库、系统 redis 和后端 redis 组件。确保您以使其具有高可用性的方式部署和配置这些组件。
在部署 3scale 前,通过创建对应的 Kubernetes secret 来指定到这些组件的连接端点。
- 如需更多信息,请参阅外部数据库安装。
- 如需有关非数据库部署配置的更多信息,请参阅启用 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 数据库是一个外部数据库。