使用HTTPS在Kubernetes API服务器中启用CORS

问题描述 投票:0回答:2

我正在尝试使用Angular JS前端应用程序中的Kubernetes API服务器。 API服务器使用https端点。前端应用程序部署到其他服务器。

尽管用于--cors-allowed-origins=.*--cors-allowed-origins=["http://*"](或kube-apiserver)参数我无法访问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
2个回答
2
投票

你链接的问题是固定的,但是kubernetes/kubernetes#18113引入了CORS处理的回归并且还没有修复(参见kubernetes/kubernetes#24086)。它目前被标记为即将发布的1.3版本的已知问题,这意味着它是一个突出的bug。


0
投票

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

地点:/etc/kubernetes/manifests/kube-apiserver.yaml

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

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

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

无需重启kube-apiserver,一旦文件保存,kube-apiserver将自动重启。

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

© www.soinside.com 2019 - 2024. All rights reserved.