【问题标题】:Enabling CORS in Kubernetes API server with HTTPS使用 HTTPS 在 Kubernetes API 服务器中启用 CORS
【发布时间】:2019-04-24 10:16:36
【问题描述】:

我正在尝试从 Angular JS 前端应用程序使用 Kubernetes API 服务器。 API 服务器使用 https 端点。前端应用部署到另一台服务器。

尽管kube-apiserver--cors-allowed-origins=.*(或--cors-allowed-origins=["http://*"])参数,但我无法访问API,因为当我尝试发出GET XHR 请求时,飞行前OPTIONS 请求失败并出现401 响应而没有CORS 标头。

但是,当我从 https 切换到 http 时,一切正常。

看起来我正面临this 问题,该问题已经修复并合并到我正在使用的 Kubernetes 版本中。

版本为 Kubernetes 1.2.4、Angular JS 1.5.4 和 Chrome 51。

您能告诉我为什么会发生这种情况以及如何解决这个问题吗?我需要一个适用于 https 的解决方案。

【问题讨论】:

    标签: angularjs xmlhttprequest kubernetes


    【解决方案1】:

    您链接到的问题已修复,但kubernetes/kubernetes#18113 引入了 CORS 处理中的回归,并且尚未修复(请参阅 kubernetes/kubernetes#24086)。它目前被标记为即将发布的 1.3 版本的已知问题,这意味着它是一个突出的错误。

    【讨论】:

    • 我试图在我的评论中说清楚,但这不会在 1.3.0 中修复。相反,它被标记为一个已知问题,该问题在该版本中不起作用
    【解决方案2】:

    您可以编辑 kubernetes API 服务器 yaml 文件,以使 CORS 正常工作。

    位置:/etc/kubernetes/manifests/kube-apiserver.yaml

    kube-apiserver下添加- --cors-allowed-origins=http://www.example.com,https://*.example.com这一行

    spec:
    containers:
    - command:
      - kube-apiserver
      - --cors-allowed-origins=http://www.example.com,https://*.example.com
    

    您可以添加逗号分隔的域或正则表达式。

    无需重启kube-apiserver,保存文件后kube-apiserver会自动重启。

    启动 API 服务器需要 5 到 10 分钟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-09
      • 2015-11-09
      • 2019-01-28
      • 2018-07-06
      • 2018-12-28
      • 2022-01-19
      • 2019-08-29
      • 2019-12-24
      相关资源
      最近更新 更多