授權叢集端點的運作方式
本節描述 kubectl CLI、kubeconfig 檔案和授權叢集端點如何協同運作,讓您可以直接存取下游 Kubernetes 叢集,而無需透過 Rancher 伺服器進行身份驗證。本節旨在為如何設定 kubectl 直接存取叢集的說明提供背景資訊和上下文。
關於 Kubeconfig 檔案
kubeconfig 檔案與 kubectl 命令列工具(或其他客戶端)結合使用時,用於設定對 Kubernetes 的存取。
kubeconfig 檔案及其內容是針對每個叢集而設定的。可以從 Rancher 中的 Clusters 頁面下載:
- 點擊左上角的 ☰。
- 選擇 Cluster Management。
- 找到您想下載 kubeconfig 的叢集,並在該行末尾選擇 ⁝。
- 從子選單中選擇 Download KubeConfig。
您需要為 Rancher 中您有權存取的每個叢集準備一個獨立的 kubeconfig 檔案。
下載 kubeconfig 檔案後,您就可以使用 kubeconfig 檔案及其 Kubernetes contexts 來存取您的下游叢集。
如果管理員已關閉 kubeconfig 權杖生成,kubeconfig 檔案將需要 Rancher CLI 存在於您的 PATH 中。
RKE 叢集的兩種身份驗證方法
如果叢集不是 RKE 叢集,kubeconfig 檔案只允許您以一種方式存取叢集:它讓您透過 Rancher 伺服器進行身份驗證,然後 Rancher 允許您在叢集上執行 kubectl 命令。
對於 RKE 叢集,kubeconfig 檔案允許您以兩種方式進行身份驗證:
- 透過 Rancher 伺服器身份驗證代理: Rancher 的身份驗證代理驗證您的身份,然後將您連線到您想要存取的下游叢集。
- 直接透過下游叢集的 API 伺服器: RKE 叢集預設啟用授權叢集端點。此端點允許您使用 kubectl CLI 和 kubeconfig 檔案存取您的下游 Kubernetes 叢集,對於 RKE 叢集預設啟用。在這種情況下,下游叢集的 Kubernetes API 伺服器透過呼叫 Rancher 設定的 webhook(
kube-api-auth微服務)來對您進行身份驗證。
第二種方法,即直 接連線到叢集的 Kubernetes API 伺服器的能力,很重要,因為它讓您在無法連線到 Rancher 時仍能存取您的下游叢集。
要使用授權叢集端點,您需要設定 kubectl 使用 Rancher 在建立 RKE 叢集時為您生成的 kubeconfig 檔案中的額外 kubectl context。此檔案可以從 Rancher UI 的叢集視圖中下載,設定 kubectl 的說明在此頁面中。
這些與下游 Kubernetes 叢集通訊的方法也在架構頁面中進行了說明,在更廣泛的上下文中解釋了 Rancher 的運作方式以及 Rancher 如何與下游叢集通訊。
關於 kube-api-auth 身份驗證 Webhook
部署 kube-api-auth 微服務是為了提供授權叢集端點的使用者身份驗證功能。當您使用 kubectl 存取使用者叢集時,叢集的 Kubernetes API 伺服器會使用 kube-api-auth 服務作為 webhook 來對您進行身份驗證。
在叢集佈建期間,會部署檔案 /etc/kubernetes/kube-api-authn-webhook.yaml,並使用 --authentication-token-webhook-config-file=/etc/kubernetes/kube-api-authn-webhook.yaml 設定 kube-apiserver