8.11. 部署租户自定义资源


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

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

前提条件

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

流程

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

    oc project my-3scale-project
  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>
  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}"

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

  4. 创建定义新 租户 自定义资源的文件。

    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:
      name: ecorp-tenant
      namespace: <namespace-in-which-to-create-Tenant-CR>
    spec:
      username: admin
      systemMasterUrl: https://<MASTER_HOSTNAME>
      email: admin@ecorp.com
      organizationName: ECorp
      masterCredentialsRef:
        name: system-seed
        namespace: <namespace-where-3scale-is-deployed>
      passwordCredentialsRef:
        name: <ADMIN_SECRET>
      tenantSecretRef:
        name: tenant-secret
  5. 创建 Tenant 自定义资源。例如,如果您在 mytenant.yaml 文件中保存了前面的示例 CR,您将运行以下命令:

    oc create -f mytenant.yaml

    因此:

    • 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"
    • 现在,您可以部署链接到您的新组合的 Product, Backend, OpenAPI, DeveloperAccount, 和 DeveloperUser CR。

删除 租户 自定义资源

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

oc delete -f mytenant.yaml

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

oc delete tenant.capabilities.3scale.net mytenant -n mynamespace

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

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

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

重要

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

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.