8.2. 配置 OpenShift 以启用服务发现
作为 3scale 管理员,您可以使用或不使用 Open Authorization(OAuth)服务器来配置服务发现。
如果您使用 OAuth 服务器配置 3scale 服务发现,当用户签名到 3scale 时会出现这种情况:
- 用户重定向到 OAuth 服务器。
- 如果用户尚未登录到 OAuth 服务器,则会提示该用户登录。
- 如果这是用户首次使用 SSO 实施 3scale 服务发现,OAuth 服务器会提示您授权执行相关操作。
- 用户重定向到 3scale。
要使用 OAuth 服务器配置服务发现,有以下选项:
如果您在没有 OAuth 服务器的情况下配置服务发现,当用户签入到 3scale 时,该用户不会被重定向。相反,3scale 单服务帐户为集群提供无缝身份验证,以进行服务发现。所有 3scale 租户管理用户对集群具有相同的访问权限级别,同时通过 3scale 发现 API 服务。
8.2.1. 使用 OpenShift OAuth 服务器配置服务发现
作为 3scale 系统管理员,您可以使用 OpenShift 内置的 OAuth 服务器来单独验证和授权 3scale 来发现 API。
先决条件
- 您必须将 3scale 2.8 部署到 OpenShift 集群(版本 3.11 或更高版本)。
- 若要将 3scale 部署到 OpenShift,您需要使用 3scale-amp-openshift-templates。
- 3scale 用户若要在 3scale 中使用服务发现,必须有权访问 OpenShift 集群。
流程
为 3scale 创建 OpenShift OAuth 客户端。如需了解更多详细信息,请参阅 OpenShift 身份验证文档。在以下示例中,将
<provide-a-client-secret>
替换为您生成的 secret,并将<3scale-master-domain-route>
替换为 3scale Master 管理门户的 URL。$ oc project default $ cat <<-EOF | oc create -f - kind: OAuthClient apiVersion: v1 metadata: name: 3scale secret: "<provide-a-client-secret>" redirectURIs: - "<3scale-master-domain-route>" grantMethod: prompt EOF
打开 3scale 服务发现设置文件:
$ oc project <3scale-project> $ oc edit configmap system
配置以下设置:
service_discovery.yml: production: enabled: true authentication_method: oauth oauth_server_type: builtin client_id: '3scale' client_secret: '<choose-a-client-secret>'
确保用户有适当的权限来查看包含可发现服务的集群项目。
要授予管理员用户(由 <user> 表示),对于包括了一个服务的 <namespace> 项目的查看权限可以被发现,使用以下命令:
oc adm policy add-role-to-user view <user> -n <namespace>
修改
configmap
后,您必须重新部署system-app
和system-sidekiq
pod 以应用更改。oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
检查推出部署的状态,以确保它已完成:
oc rollout status dc/system-app oc rollout status dc/system-sidekiq
其他备注
如需有关 OpenShift OAuth 令牌的更多信息,请配置内部 OAuth 服务器。