設定 kubectl 的叢集存取權
本頁說明如何為 GKE on Azure 的 kubectl 指令列工具設定叢集存取權。
本文適用於想要設定、監控及管理雲端基礎架構的 IT 管理員和操作人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
總覽
如要存取 Azure 上的 GKE,您需要設定 kubectl
。您可以在 Kubernetes 的 kubeconfig
檔案中設定目前背景資訊,為 kubectl
設定預設叢集。此外,您可以使用 --cluster
標記,針對特定的叢集來執行 kubectl
指令。
如要進一步瞭解 kubeconfig
和叢集端點,請參閱「關於 Kubeconfig」。
事前準備
如果您使用 Connect 閘道進行 kubectl
存取,則必須將「透過 gcloud CLI 的身分使用 kubectl」一文所述的 IAM 角色,授予非專案擁有者的管理員使用者。
檢查目前的 kubeconfig
本節說明如何查看目前的 kubeconfig
。
查看 kubeconfig 結構定義
如要查看環境的 kubeconfig
和其中包含的所有內容,請執行下列指令:
kubectl config view
這個指令會傳回已產生 kubeconfig
個項目的所有叢集清單。如果清單中列出了 GKE on Azure 叢集,您可以在目前的環境中對該叢集執行 kubectl
指令。否則,您就必須為該叢集產生 kubeconfig
項目。
查看 kubectl 的目前背景資訊
如要查看 kubectl 指令列工具使用的目前環境,請執行下列指令:
kubectl config current-context
kubectl
會輸出目前內容的名稱。
產生 kubeconfig 項目
如要對 GKE 叢集執行 kubectl
指令,您必須產生 kubeconfig
項目。產生 kubeconfig
檔案的方式,取決於您要如何連線至叢集。建議使用連線閘道。使用 Connect 閘道時,gke-connect-agent
Deployment 會透過 Google 將要求傳送至叢集控制平面。
如要查看 Connect 閘道支援哪些 kubectl
指令,請參閱「限制」。
如要透過私人端點連線,您必須在 Azure 虛擬網路中建立連線,並將路由傳送至控制層端點。叢集的 kube-apiserver 是控制層的一部分。如要將要求直接傳送至私人端點,您可能需要擴大防火牆規則。如要進一步瞭解如何連線至控制層,請參閱「網路安全性群組」。
連結閘道
gcloud container azure clusters get-credentials CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
更改下列內容:
CLUSTER_NAME
:叢集名稱GOOGLE_CLOUD_LOCATION
:管理 Azure 中 GKE 的 Google Cloud 區域或可用區
私人端點
如要連線至私人端點,您必須連線至叢集的控制層。請參閱「連線至叢集控制層」。
gcloud container azure clusters get-credentials CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--private-endpoint
更改下列內容:
CLUSTER_NAME
:叢集名稱GOOGLE_CLOUD_LOCATION
:管理 Azure 中 GKE 的 Google Cloud 區域或可用區
使用多個叢集
本節說明如何搭配多個 GKE 叢集使用 kubectl
。
設定 kubectl 指令的預設叢集
您可以執行下列指令,將 kubectl
的目前背景資訊切換成該叢集:
gcloud container azure clusters get-credentials CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
更改下列內容:
CLUSTER_NAME
:叢集名稱GOOGLE_CLOUD_LOCATION
:管理 Azure 中 GKE 的 Google Cloud 區域或可用區
舉例來說,假設某個專案有兩個叢集:cluster-1
和 cluster-2
。目前的背景資訊為 cluster-2
。如要將目前背景資訊從 cluster-2
切換為 cluster-1
,請執行下列指令:
gcloud container azure clusters get-credentials cluster-1 \
--location GOOGLE_CLOUD_LOCATION
對特定叢集執行個別的 kubectl 指令
您可以針對特定叢集執行個別的 kubectl
指令,方法是把該叢集的名稱顯示在 kubeconfig
中做為 --cluster
標記的引數來傳入。
舉例來說,假設某個環境有兩個叢集 (cluster-1
和 cluster-2
),而環境的目前背景資訊為 cluster-1
。您不希望變更目前背景資訊。如要在 cluster-2
上取得 Pod 物件清單,而不變更目前的環境,請執行下列指令:
kubectl get pod --cluster cluster-2