如「機群建立方式總覽」一文所述,建立叢集時,系統會自動將 VMware 上的 GKE 和 Bare Metal 上的 GKE 內部部署叢集,以及 多雲叢集 (AWS 和 Azure 上的叢集) 註冊至專案機群。不過,您必須手動註冊 Google Cloud 上的 GKE 叢集和第三方 Kubernetes 叢集 (附加叢集),才能加入機群。如要進一步瞭解不同的註冊選項,請參閱機群建立方式總覽。
本頁說明手動將任何 Kubernetes 叢集註冊至 Google Cloud 車隊的必要條件和需求。此外,GKE 叢集和附加叢集也有各自的特定需求。 Google Cloud 完成本指南後,請按照要註冊的叢集類型操作。
建議您先查看叢集註冊的一般限制,再開始操作。
安裝指令列工具
請確認您已安裝下列指令列工具。如果您使用 Cloud Shell 做為與 Google Cloud互動的 Shell 環境,系統會為您安裝這些工具。
安裝 Google Cloud CLI
Google Cloud CLI 是 Google Cloud的指令列介面 (CLI)。您可以使用 Google Cloud CLI 註冊叢集,也可以視叢集類型使用其他工具,例如 Terraform 或 Google Cloud 控制台。不過,即使不使用 gcloud
註冊叢集,本指南中的許多其他設定步驟也需要或適用於 gcloud
。
如果尚未安裝,請按照安裝說明安裝 Google Cloud CLI。建議使用最新版的 Google Cloud CLI。如要註冊叢集,您需要 361.0.0 以上版本;如要使用 GKE 的非舊版註冊指令,則需要 423.0.0 以上版本,並安裝 Alpha 或 Beta 版元件。
執行下列指令,登入 Google Cloud:
gcloud auth login
(選用) 如果您打算試用 Alpha 版或 Beta 版功能,請確認已安裝
gcloud beta
元件:gcloud components install beta
安裝「kubectl
」
註冊叢集時不需要 kubectl
,但您可能需要這個工具,才能授予註冊叢集的使用者必要的角色型存取權控管 (RBAC) 權限 (如果使用者不是叢集擁有者),以及進行其他平台專屬設定。您需要 kubectl
版本,且不得低於 Google Kubernetes Engine (GKE) 的最低支援 Kubernetes 版本。
建議使用 Google Cloud CLI 安裝 kubectl
。
如要查看 kubectl
版本,請執行下列步驟:
kubectl version
輸出內容的 gitVersion
會指出用戶端版本。
如要安裝 kubectl
:
gcloud components install kubectl
啟用 API
您需要在機群主專案中啟用下列 API:
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
,又稱「Fleet API」。這是 Google Cloud 處理叢集註冊和機群成員資格的服務。cloudresourcemanager.googleapis.com
您要註冊的叢集中的 Pod 必須能直接連線至 googleapis.com
和 gkeconnect.googleapis.com
位址,或是使用已設定的 Proxy 伺服器來連線。
如要啟用機群 Workload Identity 以進行註冊,您也必須啟用下列項目:
iam.googleapis.com
非專案擁有者必須先獲得 serviceusage.services.enable
權限,才能啟用 API。
gcloud
如要啟用這些 API,請執行下列指令:
gcloud services enable \
--project=FLEET_HOST_PROJECT_ID \
container.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
cloudresourcemanager.googleapis.com \
iam.googleapis.com
其中:
- FLEET_HOST_PROJECT_ID 是您要在當中註冊叢集的 Google Cloud 專案 ID。瞭解如何找到這個值。
如果不想啟用機群 Workload Identity,可以省略 iam.googleapis.com
。
如要列出專案中已啟用的 API,請按照服務使用情形說明文件中的「列出服務」一節操作。
授予存取權限
確認您具備註冊叢集的適當存取權。如要註冊叢集,您必須具備向機群註冊叢集的權限,以及叢集本身的系統管理員權限。
授予叢集註冊權限
您必須具備機群主專案的叢集註冊 IAM 權限,才能註冊叢集。如果您具備機群主專案的擁有者或其他角色,就會自動取得這項權限,以及完成註冊工作所需的各項存取權限。roles/owner
如果專案中沒有 roles/owner
,則須先取得特定的 IAM 角色,才能將叢集連結至 Google,如下所示:
如要註冊採用機群 Workload Identity 的叢集,以便完成 Google 驗證程序,您只需要下列 IAM 角色:
roles/gkehub.admin
部分 Google Cloud外部註冊選項會要求您設定服務帳戶,供叢集向 Google 進行驗證,而非使用 Workload Identity。如要註冊叢集及管理這個服務帳戶,您需要下列角色:
roles/gkehub.admin
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountKeyAdmin
roles/resourcemanager.projectIamAdmin
如要查看 gkehub
角色包含的詳細權限清單,請參閱「連結 IAM 角色」。
gcloud
如要將 IAM 角色授予使用者,請執行下列指令:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
--member user:GCP_EMAIL_ADDRESS \
--role=ROLE
其中:
- FLEET_HOST_PROJECT_ID 是您要在當中註冊叢集的 Google Cloud 專案 ID。瞭解如何找到這個值。
- GCP_EMAIL_ADDRESS 是使用者用來登入 Google Cloud的帳戶。
- ROLE 是您要授予的 IAM 角色,例如
roles/gkehub.admin
。
如要進一步瞭解如何授予 IAM 角色,請參閱 IAM 說明文件中的授予、變更及撤銷資源的存取權。
授予叢集管理員權限
除了註冊叢集所需的權限外,您也需要叢集本身的系統管理員權限。您可以視叢集位置而定,使用 IAM 角色或 Kubernetes 角色型存取權控管 (RBAC) 指派這項權限。
GKE 叢集 Google Cloud
如果是 Google Cloud 上的 GKE 叢集,請新增下列 IAM 角色,取得叢集的管理員權限 (如果沒有的話)。如果您建立叢集,使用者帳戶可能已具備這項角色:
roles/container.admin
這個 IAM 角色包含 Kubernetes RBAC cluster-admin
角色。如為其他叢集環境,您需要使用 kubectl
授予這項 RBAC 角色,詳情請參閱下一節。如要進一步瞭解 GKE 中 IAM 和 RBAC 角色之間的關係,請參閱 GKE 說明文件。
外部叢集 Google Cloud
如要連結外部第三方叢集 Google Cloud,請確認註冊叢集的使用者具備 Kubernetes RBAC cluster-admin
角色。
kubectl
如果是您建立了叢集,應該已具備這個角色。如要驗證,請執行下列指令:
kubectl auth can-i '*' '*' --all-namespaces
如果您或其他使用者需要該角色,請在叢集中建立 ClusterRoleBinding 資源:
kubectl create clusterrolebinding BINDING_NAME --clusterrole cluster-admin --user USER
其中:
- BINDING_NAME 是您為 ClusterRoleBinding 資源選擇的名稱。
- USER 是執行叢集驗證程序時使用的身分。
後續步驟
請按照要註冊的叢集類型,參閱必要條件指南: