8.12. 部署租户自定义资源


租户自定义资源 (CR)也称为 Provider Account

当您部署使用 3scale Operator 部署 3scale 的 APIManager CR 时。默认 3scale 安装包括可供使用的默认租户。另外,您可以通过部署租户 CR 来创建 其他租户。

先决条件

  • 一般先决条件
  • 在新的 Tenant CR 命名空间中具有 create 权限的 OpenShift 角色。

流程

  1. 进入到安装 3scale 的 OpenShift 项目。例如,如果项目名称是 my-3scale-project,请运行以下命令:

    $ oc project my-3scale-project
    Copy to Clipboard Toggle word wrap
  2. 创建一个包含新租户 3scale admin 帐户密码的 secret。在 Tenant CR 的定义中,将 passwordCredentialsRef 属性设置为此 secret 的名称。在第 4 步定义的 租户 CR 示例中,ADMIN_SECRET 是此 secret 的占位符。以下命令提供了创建 secret 的示例:

    $ oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
    Copy to Clipboard Toggle word wrap
  3. 获取 3scale master 帐户主机名。当您使用操作器部署 3scale 时,master 帐户具有具有此模式的固定 URL:master.${wildcardDomain}

    如果可以访问安装 3scale 的命名空间,您可以使用这个命令获取 master 帐户主机名:

    $ oc get routes --field-selector=spec.to.name==system-master -o jsonpath="{.items[].spec.host}"
    Copy to Clipboard Toggle word wrap

    在第 4 步中定义 租户 CR 的示例中,MASTER_HOSTNAME 是此名称的占位符。

  4. 创建定义新 租户 CR 的文件

    Tenant CR 的定义中,将 masterCredentialsRef.name 属性设置为 system-seed。您只能使用 3scale master 帐户凭证(最好使用访问令牌)来执行租户管理任务。在部署 APIManager CR 时,Operator 会创建包含 master 帐户凭证的 secret。secret 的名称是 system-seed

    如果以 cluster wide 的形式安装了 3scale,您可以在与包含 3scale 的命名空间不同的命名空间中部署新租户。要做到这一点,将 masterCredentialsRef.namespace 设置为包含 3scale 安装的命名空间。

    以下示例假设以 cluster wide 模式下安装 3scale。

    apiVersion: capabilities.3scale.net/v1alpha1
    kind: Tenant
    metadata:
      generation: 3
      name: <ecorp_tenant>
      namespace: <namespace_in_which_to_create_tenant-CR>
    spec:
      email: admin@ecorp.com
      masterCredentialsRef:
        name: system-seed
        namespace: <namespace-where-3scale-is-deployed>
      organizationName: ECorp
      passwordCredentialsRef:
        name: <admin_secret>
        namespace: <namespace_in_which_to_create_tenant-CR>
      systemMasterUrl: https://<master_hostname>
      tenantSecretRef:
        name: <tenant_secret>
        namespace: <namespace_in_which_to_create_tenant-CR>
      username: tenant2FromCR1
    Copy to Clipboard Toggle word wrap
  5. 创建 Tenant CR。例如,如果您在 mytenant.yaml 文件中保存了前面的示例 CR,您将运行以下命令:

    $ oc create -f mytenant.yaml
    Copy to Clipboard Toggle word wrap

    因此:

    • Operator 通过设置 spec.systemMasterUrl 属性在 3scale 安装中部署一个租户。
    • 3scale operator 创建一个 secret,其中包含新租户的凭证。secret 的名称是您为 tenantSecretRef.name 属性指定的值。此 secret 包含新的租户的 admin URL 和访问令牌。

      作为参考,这是 Operator 创建的 secret 示例:

      apiVersion: v1
      kind: Secret
      metadata:
        name: <tenant_secret>
      type: Opaque
      stringData:
        adminURL: https://my3scale-admin.example.com:443
        token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      Copy to Clipboard Toggle word wrap
    • 现在,您可以部署链接到您的新组合的 Product, Backend, OpenAPI, DeveloperAccount, 和 DeveloperUser CR。

扩展 租户 CR 的功能

您可以通过 Tenant CR 在 3scale Tenant 中设置以下 可选参数

  • fromEmail
  • supportEmail
  • financeSupportEmail
  • siteAccessCode

流程

  1. 通过 Tenant CR 更新 3scale 租户中的租户 info 参数:

    apiVersion: capabilities.3scale.net/v1alpha1
    kind: Tenant
    metadata:
      generation: 3
      name: <ecorp_tenant>
      namespace: <namespace_in_which_to_create_tenant-CR>
    spec:
      email: admin@ecorp.com
      masterCredentialsRef:
        name: system-seed
        namespace: <namespace-where-3scale-is-deployed>
      organizationName: ECorp
      passwordCredentialsRef:
        name: <admin_secret>
        namespace: <namespace_in_which_to_create_tenant-CR>
      systemMasterUrl: https://<master_hostname>
      tenantSecretRef:
        name: <tenant_secret>
        namespace: <namespace_in_which_to_create_tenant-CR>
      username: <tenant2FromCR1>
      fromEmail: <tenant2FromCR1>@ecorp.com
      supportEmail: <tenant2Support>@ecorp.com
      financeSupportEmail: <tenant2FinanceSupport>@ecorp.com
      siteAccessCode: <abc123>
    Copy to Clipboard Toggle word wrap
  2. 将更改应用到 Tenant CR:

    $ oc apply -f mytenant.yaml
    Copy to Clipboard Toggle word wrap
删除租户 CR

如果您使用租户 CR 部署了该租户,请不要在管理门户中删除 租户。如果这样做,Operator 会将 CR 用于您要删除的租户。

要删除 部署的 租户 CR,您可以指定包含资源定义的文件名称,例如:

$ oc delete -f mytenant.yaml
Copy to Clipboard Toggle word wrap

另外,您可以运行 oc delete 命令,在 租户 CR 中指定名称,并指定租户的命名空间。例如:

$ oc delete tenant.capabilities.3scale.net mytenant -n mynamespace
Copy to Clipboard Toggle word wrap

当删除租户时,3scale Operator 会进行以下操作:

  • 从 3scale 安装中隐藏租户。
  • 删除租户拥有的部署 CR。
  • 标记要在 15 天后删除的租户。

删除租户后,您无法恢复它。您有 15 天时间来备份所有拥有租户的资源,并且只能在管理门户中执行此操作。15 天后,3scale 删除租户。为了遵守数据保护法律,一些数据将保留下来以备将来参考。

其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat