本文適用於想要設定、監控及管理雲端基礎架構的 IT 管理員和操作人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
Kubernetes 設定檔
Kubernetes 使用名為 kubeconfig
的 YAML 檔案,儲存 kubectl
的叢集驗證資訊。kubeconfig
包含 kubectl
在執行指令時參照的背景資訊清單。根據預設,檔案會儲存在 $HOME/.kube/config
。
「背景資訊」是一組存取參數。每個背景資訊都包含一個 Kubernetes 叢集、一位使用者和一個命名空間。「目前背景資訊」就是 kubectl
目前的預設叢集;也就是說,系統會針對該叢集執行所有的 kubectl
指令。
建立叢集後,請按照「產生 kubeconfig
項目」一文的說明,將叢集的內容新增至本機 kubeconfig
。
私人端點
所有叢集都有標準端點,端點會公開 Kubernetes API 伺服器,讓 kubectl
和其他服務透過 TCP 埠 443 與叢集控制層通訊。在 AWS 上,這個端點是只能在叢集內解析的 DNS 名稱,例如 gke-abcdefghijk-cp-ffabcdef123456.elb.us-west-1.amazonaws.com
。這個端點無法透過公開網際網路存取。您可以從 gcloud container aws clusters describe
指令輸出內容的 endpoint
欄位取得私人叢集端點位址。
連結閘道端點
根據預設,gcloud container aws clusters get-credentials
指令會產生使用 Connect Gateway 的 kubeconfig
。有了這項功能,kubeconfig
kubectl
會使用 Connect,然後代表您將流量安全地轉送至私人端點。使用 Connect 閘道時,端點看起來會像 https://connectgateway.googleapis.com/v1/projects/PROJECT_NUMBER/memberships/CLUSTER_NAME
,其中 PROJECT_NUMBER 是專案編號,CLUSTER_NAME 則是叢集名稱。
如果您透過 VPC 存取叢集的私人端點,可以直接連線至私人端點。如要使用私人端點產生 kubeconfig
,請使用 gcloud container aws clusters get-credentials --private-endpoint
指令。
關於 kubectl
的驗證
所有 AWS 上的 GKE 都設定成會接受 Google Cloud使用者和服務帳戶的身分,方法是驗證由 kubectl
提供的憑證,然後擷取與使用者或服務帳戶身分相關聯的電子郵件地址。因此,這些帳戶的憑證必須包含 userinfo.email
OAuth 範圍,才能順利通過驗證。
當您使用 gcloud
為新或現有叢集設定環境的 kubeconfig
時,gcloud
會將 gcloud
本身使用的憑證提供給 kubectl
。舉例來說,如果您使用 gcloud auth login
,系統會把您的個人憑證提供給kubectl
,包括 userinfo.email
範圍。這讓 AWS 上的 GKE 能夠驗證 kubectl
用戶端的真偽。
使用者或 Google Cloud 服務帳戶通過驗證後,還必須「獲得授權」才能對 GKE on AWS 執行任何動作。叢集管理員負責設定適當的角色型存取權控管,以設定授權。