8.2.3. 在没有 OAuth 服务器的情况下配置服务发现

要在不使用 OAuth 服务器的情况下配置 3scale 服务发现,您可以使用 3scale 单服务帐户对 OpenShift API 服务进行身份验证。

先决条件

  • 您必须将 3scale 2.9 部署到 OpenShift 集群(版本 3.11 或更高版本)。
  • 若要将 3scale 部署到 OpenShift,您需要使用 3scale-amp-openshift-templates
  • 3scale 用户若要在 3scale 中使用服务发现,必须有权访问 OpenShift 集群。

流程

  1. 验证 3scale 项目是否为当前项目。

       $ oc project <3scale-project>
  2. 在编辑器中打开 3scale 服务发现设置。

       $ oc edit configmap system
  3. 验证是否已配置以下设置:

    service_discovery.yml:
       production:
          enabled: <%= cluster_token_file_exists = File.exists?(cluster_token_file_path = '/var/run/secrets/kubernetes.io/serviceaccount/token') %>
          bearer_token: "<%= File.read(cluster_token_file_path) if cluster_token_file_exists %>"
          authentication_method: service_account
  4. 为 3scale 部署 amp 服务帐户提供相关权限,以便查看包含可发现服务的项目:

    • 为 3scale 部署 amp 服务帐户授予 查看 集群级别权限。

      oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
    • 应用更严格的策略,如 OpenShift - Service Accounts 所述。