6.4. 与功能相关的后端自定义资源
在新创建的租户中使用 Openshift Container Platform,您将配置后端、对应的指标、方法和映射规则。您还将了解 backend 自定义资源的状态,以及如何将后端链接到租户帐户。
先决条件
般先决条件 中列出的安装要求与以下注意事项相同:
- 3scale 帐户中所需的最小参数是管理门户 URL 地址和访问令牌。
6.4.1. 部署与功能相关的后端自定义资源
在新创建的租户中使用 Openshift Container Platform,您将配置一个新的后端。
步骤
- 在 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 条件标记为
6.4.2. 定义后端指标
将 Openshift Container Platform 与新创建的 3scale 租户一起使用,在后端自定义资源中定义所需的后端指标。
考虑以下观察:
-
指标
映射键名称将用作system_name
。在以下示例中:metric01
、metric02
和hits
。 -
在所有指标和方法中,指标
映射
键名称都必须是唯一的。 -
单元
和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
6.4.3. 定义后端方法
将 Openshift Container Platform 与新创建的 3scale 租户一起使用,在后端自定义资源中定义所需的后端方法。
考虑以下观察:
-
映射键名称
的方法
将用作system_name
。在以下示例中:Method01
和Method02.
-
在所有指标和方法中,
方法
映射键名称必须是唯一的。 -
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
6.4.4. 定义后端映射规则
将 Openshift Container Platform 与新创建的 3scale 租户一起使用,在后端自定义资源中定义所需的后端映射规则。
考虑以下观察:
-
httpMethod
、mode、in
c
rement 和metricMethodRef
是必填字段。 -
metricMethodRef
包含对现有指标或方法映射键名称system_name
的引用。在以下示例中,按s键
。
步骤
将后端映射规则添加到新的 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"
6.4.5. backend 自定义资源的状态
status 字段显示对最终用户有用的资源信息。它不应手动更新,在每次资源更改时都会同步。
这些是 status 字段的属性:
-
backendId
:3scale 后端的内部标识符。 条件
:表示status.Conditions
Kubernetes 通用模式。它有这些类型或状态:-
无效 :不支持
BackendSpec
中的配置组合。这不是临时错误,但表示在进行进度前必须修复的状态。 - 同步 :后端已成功同步。
- 失败 :同步过程中出现错误。
-
无效 :不支持
-
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
6.4.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 和 令牌 字段。例如:
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 帐户)收集所需的凭证。