首页 > 解决方案 > 如何在启用 CORS 的情况下公开 Kubernetes API(Docker for Windows)

问题描述

出于内部目的,我正在构建一个仪表板应用程序。在这个仪表板中,我需要显示一些关于 Kubernetes 的信息(运行的 pod、集群等)。

我正在尝试从我的网络应用程序(从浏览器)调用我的 Kubernetes API。API的网址是http://localhost:8001/api/v1/

我在获取数据时遇到错误(不允许使用 CORS 来源)。

我在互联网上搜索了几个小时试图找到解决方案,但没有任何效果。我知道还有其他堆栈帖子提供了一些解决方案,但我不确定如何应用它。例如。:在 Kubernetes API 中启用 CORS

你们中的任何人都知道如何在 Kubernetes API(Windows 的 Docker)上允许 CORS 来源吗?

注意:我正在使用kubectl proxy

标签: dockerkuberneteskubernetes-apiserver

解决方案


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

添加行--cors-allowed-origins=["http://*"]参数到/etc/default/kube-apiserver/etc/kubernetes/manifests/kube-apiserver.yaml文件,这取决于你的 kube- apiserver 配置文件位于。

spec:
containers:
- command:
  - kube-apiserver
  - --cors-allowed-origins=["http://*"]

重启 kube-apiserver。

然后将注释添加到服务配置到dns.alpha.kubernetes.io/external: "http://localhost:8001/api/v1/"您的服务配置文件中并应用更改。


推荐阅读