如何使用使用者/通行證保護我的 Kubernetes 儀表板免受外部存取?
在 vm-driver=none 模式下使用 Minikubes 建立叢集。
答案1
在 Kubernetes 中,請求以身份驗證(確定誰在與 API 伺服器通訊的憑證)和授權(以便 API 伺服器可以確定該使用者是否可以執行請求的操作)的形式出現。然而,Kubernetes 沒有傳統意義上的使用者(Kubernetes 使用者只是透過憑證與請求關聯的字串)。憑證策略是您在安裝叢集時所做的選擇(您可以從 x509、密碼檔案、承載令牌等中進行選擇)。
正如您所補充的,您希望在使用 --vm-driver=none 時建立用戶,我假設儀表板和叢集本身在網路中可供每個人使用。 Minikube 注定要用於本地開發和測試,似乎它代表您創建了該角色。您可以嘗試使用以下命令安裝常規 Kubernetes 集群庫貝德姆而不是使用 Minikube 部署的簡化版本。在minikube start
minikube 建立叢集角色「kubernetes儀表板」和關聯的令牌後。因此,另一個可能的解決方案是刪除 Kubernetes Dashboard 並按照說明從頭開始安裝這裡依照描述建立用戶這裡您也可以嘗試為使用者建立新角色,但我沒有足夠的時間來測試此解決方案。另外,我建議您使用其他工具來執行 Kubernetes 更複雜的任務 - 透過 kubeadm,您可以自行安裝儀表板,並配置它以滿足您的需求。
更遠閱讀關於 Kubernetes 儀表板中的存取控制。 為儀表板建立服務帳戶並取得其憑證第7步:
- 此命令將在預設命名空間中為儀表板建立一個服務帳戶
$ kubectl 建立服務帳戶儀表板 -n 預設值
- 此命令會將叢集綁定規則新增至您的儀表板帳戶
$ kubectl 建立叢集角色綁定儀表板管理 -n 預設 \
--clusterrole=叢集管理 \ --serviceaccount=default:dashboard
- 此命令將為您提供儀表板登入所需的令牌
$ kubectl 取得秘密 $(kubectl 取得服務帳號儀表板 -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64——解碼
你應該得到一個令牌。 4. 透過選擇令牌選項,複製此令牌並將其貼上到儀表板登入頁面中