簡體   English   中英

使用HTTPS在Kubernetes API服務器中啟用CORS

[英]Enabling CORS in Kubernetes API server with HTTPS

我正在嘗試從Angular JS前端應用程序使用Kubernetes API服務器。 API服務器使用https端點。 前端應用程序已部署到另一台服務器。

盡管為--cors-allowed-origins=.*--cors-allowed-origins=.* (或--cors-allowed-origins=["http://*"] )參數, kube-apiserver我無法訪問API,因為當我嘗試進行GET時XHR請求,飛行前OPTIONS請求失敗,沒有CORS標頭的401響應。

但是,當我從https切換到http時,一切正常。

看來我正在面對這個問題, 問題已在我使用的Kubernetes版本中修復並合並。

版本包括Kubernetes 1.2.4,Angular JS 1.5.4和Chrome 51。

您能告訴我為什么會這樣以及如何解決嗎? 我需要一個適用於https的解決方案。

您鏈接到的問題已修復,但是kubernetes / kubernetes#18113引入了CORS處理的回歸,並且尚未解決(請參閱kubernetes / kubernetes#24086 )。 當前已將其標記為即將發布的1.3版本的已知問題,這意味着它是一個未解決的錯誤。

您可以編輯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分鍾的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM