7.8. 与功能相关的后端自定义资源
在新创建的租户中使用 Openshift Container Platform,您将配置后端、对应的指标、方法和映射规则。您还将了解 backend 自定义资源的状态,以及如何将后端链接到租户帐户。
先决条件
常规先决条件 中列出的安装要求与以下事项相同:
- 3scale 帐户中所需的最小参数是管理门户 URL 地址和访问令牌。
7.8.1. 部署与功能相关的后端自定义资源
在新创建的租户中使用 OpenShift Container Platform (OCP),您将配置新的后端。
流程
- 在 OpenShift 帐户中,导航到 Installed operator。
- 单击 3scale 操作器。
- 在 3scale Backend 下,点 Create Instance。
- 选择 YAML 视图。
创建指向特定 3scale Admin URL 地址的 3scale 后端:
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: <your_backend_OpenShift_name> spec: name: "<your_backend_name>" privateBaseURL: "<your_admin_portal_URL>"
例如:
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com"
- 要保存您的更改,请点击 Create。
等待几秒钟,以在 OpenShift 和 3scale 帐户中创建后端。然后,您可以执行以下操作:
-
在 3scale Backend Overview 页面中检查 Synced 条件标记为
True
,确认 OpenShift 中已创建了后端。 -
进入 3scale 帐户,您会看到已创建了后端。在上例中,您将看到一个名为
My Backend Name
的新后端。
-
在 3scale Backend Overview 页面中检查 Synced 条件标记为
7.8.2. 定义后端指标
将 Openshift Container Platform (OCP)与新创建的 3scale 租户一起使用,在后端自定义资源(CR)中定义所需的后端指标。
考虑以下观察:
-
metrics
映射键名称将用作system_name
。在以下示例中:metric01
、metric02
和hits
。 -
在所有指标和方法中,指标
metrics
键名称都必须是唯一的。 -
unit
和friendlyName
是必填字段。 -
如果没有添加
hits
指标,Operator 将创建这个指标。
流程
在新的 3scale 后端中添加后端指标,如下例所示:
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" metrics: metric01: friendlyName: Metric01 unit: "1" metric02: friendlyName: Metric02 unit: "1" hits: description: Number of API hits friendlyName: Hits unit: "hit
7.8.3. 定义后端方法
将 OpenShift Container Platform (OCP)与新创建的 3scale 租户一起使用,在后端自定义资源(CR)中定义所需的后端方法。
考虑以下观察:
-
映射键名称的
methods
将用作system_name
。在以下示例中:Method01
和Method02
。 -
在所有指标和方法中,
methods
映射键名称必须是唯一的。 -
friendlyName
是一个必填字段。
流程
在新的 3scale 后端中添加后端方法,如下例所示:
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" methods: method01: friendlyName: Method01 method02: friendlyName: Method02
7.8.4. 定义后端映射规则
将 OpenShift Container Platform (OCP)与新创建的 3scale 租户一起使用,在后端自定义资源(CR)中定义所需的后端映射规则。
考虑以下观察:
-
httpMethod
,pattern
,increment
和metricMethodRef
是必填字段。 -
metricMethodRef
包含对现有指标或方法映射键名称system_name
的引用。在以下示例中,hits
。
流程
将后端映射规则添加到新的 3scale 后端,如下例所示:
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" mappingRules: - httpMethod: GET pattern: "/pets" increment: 1 metricMethodRef: hits - httpMethod: GET pattern: "/pets/id" increment: 1 metricMethodRef: hits metrics: hits: description: Number of API hits friendlyName: Hits unit: "hit"
7.8.5. backend 自定义资源的状态
status 字段显示对最终用户有用的资源信息。它不应该手动更新,它会与资源的每个更改同步。
这些是 status 字段的属性:
backendId
3scale 后端的内部标识符。
conditions
表示
status.Conditions
Kubernetes 通用模式。它有这些类型或状态:- 无效
不支持
BackendSpec
中的配置组合。这不是临时错误,但表示在进行进度前必须修复的状态。- 同步
后端已成功同步。
- Failed
同步过程中出现错误。
observedGeneration
这是一个帮助字段,用于确认状态信息已更新为最新的资源规格。
同步资源示例:
status: backendId: 59978 conditions: - lastTransitionTime: "2020-06-22T10:50:33Z" status: "False" type: Failed - lastTransitionTime: "2020-06-22T10:50:33Z" status: "False" type: Invalid - lastTransitionTime: "2020-06-22T10:50:33Z" status: "True" type: Synced observedGeneration: 2
7.8.6. 链接到租户帐户的后端自定义资源
当 3scale 操作器找到新的 3scale 资源时,LookupProviderAccount 进程从识别拥有该资源的租户开始。
进程检查租户凭据来源。如果未找到,则引发错误。
以下步骤描述了进程如何验证租户凭证源:
检查 providerAccountRef resource 属性中的凭据。这是一个 secret 本地引用,例如 mytenant:
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" providerAccountRef: name: mytenant
mytenant secret 必须具有填充租户凭据的 adminURL 和 token 字段。例如:
apiVersion: v1 kind: Secret metadata: name: mytenant type: Opaque stringData: adminURL: https://my3scale-admin.example.com:443 token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
检查默认的 threescale-provider-account 机密。例如:
adminURL=https://3scale-admin.example.com
和token=123456
:$ oc create secret generic threescale-provider-account --from-literal=adminURL=https://3scale-admin.example.com --from-literal=token=123456
- 在 3scale 部署的相同命名空间中检查默认供应商账户:如果 3scale 安装位于与自定义资源相同的命名空间中,Operator 将自动为默认的 3scale 租户(provider 帐户)收集所需的凭证。
7.8.7. 删除后端自定义资源
您可以通过删除管理它的后端
自定义资源 (CR) 来删除后端实体。当您删除 后端
CR 时,3scale Operator 会更新部署的 Product
CR,该 CR 引用已删除的后端。更新在这些属性中:
-
backendUsages
-
applicationPlans
这些属性不再引用已删除的后端。
删除后端
CR 定义的唯一方法是按照此处所述的步骤进行操作。不要使用 Admin Portal 或 3scale API 来删除部署为 CR 的后端。
先决条件
3scale 管理员权限或具有删除命名空间中具有删除权限的 OpenShift 角色,其中包含您要删除的
后端
CR。要识别谁可以删除特定的后端
CR,请运行oc policy who-can delete
命令。例如,如果 CR 中的名称是mybackend
,则运行这个命令:$ oc policy who-can delete product.capabilities.3scale.net/mybackend
-
要删除至有效租户的
后端
CR 的链接。
流程
运行
oc delete
命令删除后端
CR。例如,如果您部署了mybackend.yaml
文件中定义的后端
,则可运行以下命令:$ oc delete -f mybackend.yaml
或者,您可以运行
oc delete
命令并指定其定义中指定的后端名称。例如:$ oc delete backend.capabilities.3scale.net/mybackend