第 11 章 允许从其他主机对 API 服务器进行基于 JavaScript 的访问

11.1. 允许从其他主机对 API 服务器进行基于 JavaScript 的访问

默认的 OpenShift Container Platform 配置仅允许 OpenShift Web 控制台向 API 服务器发送请求。

如果需要使用不同的主机名从 JavaScript 应用程序访问 API 服务器或 OAuth 服务器,您可以配置额外的主机名来允许。

先决条件

  • 使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 编辑 APIServer 资源:

    $ oc edit apiserver.config.openshift.io cluster
  2. spec 部分下添加 additionalCORSAllowedOrigins 字段,并指定一个或多个额外主机名:

    apiVersion: config.openshift.io/v1
    kind: APIServer
    metadata:
      annotations:
        release.openshift.io/create-only: "true"
      creationTimestamp: "2019-07-11T17:35:37Z"
      generation: 1
      name: cluster
      resourceVersion: "907"
      selfLink: /apis/config.openshift.io/v1/apiservers/cluster
      uid: 4b45a8dd-a402-11e9-91ec-0219944e0696
    spec:
      additionalCORSAllowedOrigins:
      - (?i)//my\.subdomain\.domain\.com(:|\z) 1
    1
    主机名用 Golang 正则表达式指定,与来自对 API 服务器和 OAuth 服务器的 HTTP 请求的 CORS 标头匹配。
    注意

    此示例采用以下语法:

    • (?i) 使它不区分大小写。
    • // 固定到域的开头,并且匹配 http:https: 后面的双斜杠。
    • \. 对域名中的点进行转义。
    • (:|\z) 匹配域名末尾 (\z) 或端口分隔符 (:)
  3. 保存文件以使改变生效。