29.6. 在没有 OAuth 服务器的情况下配置服务发现
要在不使用 OAuth 服务器的情况下配置 3scale 服务发现,您可以使用 3scale 单服务帐户对 OpenShift API 服务进行身份验证。
先决条件
- 您必须将 3scale 2.13 部署到 OpenShift 集群(版本 3.11 或更高版本)。
- 若要将 3scale 部署到 OpenShift,您需要使用 3scale-amp-openshift-templates。
- 3scale 用户若要在 3scale 中使用服务发现,必须有权访问 OpenShift 集群。
流程
验证 3scale 项目是否为当前项目。
$ oc project <3scale-project>
在编辑器中打开 3scale 服务发现设置。
$ oc edit configmap system
验证是否已配置以下设置:
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
为 3scale 部署
amp
服务帐户提供相关权限,以便查看包含可发现服务的项目:为 3scale 部署
amp
服务帐户授予查看
集群级别权限。oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
- 应用更严格的策略,如 OpenShift - Service Accounts 所述。