將叢集附加至 GKE 後,您就能在 Google Cloud 控制台中查看現有的 Kubernetes 叢集和 GKE 叢集,並在這些叢集上啟用多項 GKE Enterprise 功能,包括透過 Config Sync 集中控管設定。
支援的 Kubernetes 叢集
您可以將任何含有 x86 節點的相容 Kubernetes 叢集附加至機群,以便在 Google Cloud 控制台中查看 (GKE 叢集也會顯示於此)。
Google 已驗證下列叢集類型和版本。如要瞭解附加叢集支援的 GKE Enterprise 功能,請參閱「Anthos 元件和多雲端支援」。
附加的叢集類型 | Kubernetes 版本 |
---|---|
Red Hat OpenShift Kubernetes Engine (OKE) 4.9、4.10 | 1.23、1.24 |
Red Hat OpenShift Container Platform (OCP) 4.9、4.10 | 1.23、1.24 |
Rancher Kubernetes Engine (RKE) 1.3.8 | 1.23、1.24 |
KIND 0.12 | 1.23、1.24 |
K3s 1.20 | 1.20 |
K3d 4.4.3 | 1.20 |
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Anthos API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Anthos API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 請檢查機群註冊必要條件,確保您擁有相關權限並已啟用 API,可註冊叢集。
- 如要瞭解在 Google Cloud外部附加叢集的具體需求,包括叢集類型可能需要的特殊設定步驟,請參閱「事前準備」指南。
- MEMBERSHIP_NAME:您選擇的成員名稱,用於專屬代表註冊至機群的叢集。
- SERVICE_ACCOUNT_KEY_PATH:服務帳戶私密金鑰 JSON 檔案的本機檔案路徑,該檔案是在「必要條件」一節中下載。這個服務帳戶金鑰會以名為
creds-gcp
的密鑰形式,儲存在gke-connect
命名空間中。 - KUBECONFIG_CONTEXT:待註冊叢集的叢集內容,與 kubeconfig 檔案中顯示的內容相同。您可以執行
kubectl config current-context
,透過指令列取得此值。 - KUBECONFIG_PATH:您儲存 kubeconfig 的本機路徑,其中包含要註冊叢集的項目。如果已設定該環境變數,此值預設為
$KUBECONFIG
。如果沒有,則預設為$HOME/.kube/config
。 在 Google Cloud 控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。
按一下「註冊現有叢集」。
按一下「新增外部叢集」。
在「叢集名稱」欄位中,輸入要註冊的叢集名稱。
選用:為叢集新增 Google Cloud 標籤。
按一下「產生註冊指令」。
在 Cloud Shell 或您儲存服務帳戶憑證的位置,編輯並執行頁面顯示的
gcloud
指令。您必須指定下列值:- CLUSTER_CONTEXT 為叢集的內容,因為其出現在 kubeconfig 檔案中。您可以執行
kubectl config current-context
,透過指令列取得此值。 - KUBECONFIG_PATH 是您存放 kubeconfig 檔案的本機路徑。如果已設定該項環境變數,這個值會預設為
$KUBECONFIG
,否則即為$HOME/.kube/config
。 - LOCAL_KEY_PATH 是服務帳戶金鑰檔案的路徑。
執行此指令會在使用者叢集中部署 Connect Agent。Connect Agent 連線至 Google Cloud 並註冊叢集後,網頁上會顯示成功訊息。
- CLUSTER_CONTEXT 為叢集的內容,因為其出現在 kubeconfig 檔案中。您可以執行
按一下「設定標籤」,或按一下「略過」 (如果沒有設定任何標籤)。
Cloud Service Mesh 1.11 以上版本支援 Amazon EKS:
設定和政策管理:
註冊附加叢集
如要搭配 GKE Enterprise 使用叢集,必須將所有叢集註冊至專案的機群。機群能有條理地將 Kubernetes 叢集分類並正規化,讓基礎架構管理作業更輕鬆。您可以在Google Cloud 控制台中,一起瀏覽及管理同一機群中的叢集。此外,許多 GKE Enterprise 和 Google Cloud 元件會使用機群概念 (例如身分相同性和命名空間相同性),簡化多個叢集的使用方式。如要進一步瞭解機群和相關功能,請參閱機群管理指南。
您有權在這些叢集上啟用及使用 GKE Enterprise 功能,並可從 GKE 功能頁面,在機群層級管理部分 GKE Enterprise 功能。GKE Enterprise 費用僅適用於已註冊的叢集。
設定身分
所有附加的叢集都需要身分,供 Connect Agent 向 Google 進行驗證時使用。如果叢集符合需求,即可註冊並啟用機群 Workload Identity 進行驗證。啟用這項功能的叢集會使用機群工作負載身分集區中的身分。如要進一步瞭解機群 Workload Identity 的運作方式和使用優勢,請參閱「使用機群 Workload Identity」。
如果無法使用機群 Workload Identity,註冊連結的叢集時,需要 Google Cloud 服務帳戶進行驗證。建議您為要附加的每個叢集建立新的服務帳戶。如要為叢集建立具備適當角色的服務帳戶,請按照「建立具備 gcloud
權限的服務帳戶 Google Cloud 」一文中的操作說明進行。建立服務帳戶後,您可以使用含有服務帳戶憑證 (金鑰檔案) 的 JSON 檔案註冊叢集,詳情請參閱下一節。
註冊叢集
建議您在註冊叢集後取得叢集的成員資格狀態,確保叢集已正確連線至 Google Cloud。如果註冊時遇到任何問題,請參閱疑難排解指南。
gcloud
執行下列指令:
gcloud container fleet memberships register MEMBERSHIP_NAME \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATH \ --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
更改下列內容:
註冊採用機群 Workload Identity 的連結叢集
如要註冊啟用機群 Workload Identity 的連結叢集,請執行下列指令。如要進一步瞭解哪些連結的叢集類型可以使用這項功能,以及任何額外需求,請參閱「連結的叢集先決條件」。
gcloud container fleet memberships register MEMBERSHIP_NAME \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATH \ --enable-workload-identity \ --has-private-issuer
控制台
產生註冊指令
您可以使用 Google Cloud 主控台產生gcloud
註冊指令,以註冊叢集 (僅限服務帳戶)。
如要註冊叢集,請按照下列步驟操作:
進階註冊選項 (僅限指令列)
下載 Connect Agent 資訊清單
如要下載 Connect Agent 安裝資訊清單,但不要部署代理程式 (例如想在安裝前檢查或編輯資訊清單),請將 --manifest-output-file
旗標傳遞至 gcloud container fleet memberships register
指令。例如:
--manifest-output-file=[MANIFEST_FILE_PATH]
其中 [MANIFEST_FILE_PATH] 是您要儲存 Connect 代理程式安裝資訊清單的本機路徑。
使用這個選項不會將 Connect Agent 部署到叢集。如要部署 Connect Agent,請手動將下載的資訊清單套用至叢集。
使用 Proxy 伺服器
如要設定 Proxy 伺服器,請將 --proxy
標記傳入至 gcloud container fleet memberships register
指令。例如:
--proxy=[URL]
其中 [URL] 是 Proxy 位址。
Connect Agent 僅支援以 CONNECT 為基礎的 HTTP 和 HTTPS Proxy,並接受 IP 位址和主機名稱。請務必在網址中指定與 proxy 類型對應的通訊協定。例如,要傳入至 HTTPS 主機名稱:
--proxy=https://mycorpproxy.com:443
除非您另行指定,否則 Connect Agent 會將通訊埠 3128 用於 Proxy。
如果您的 proxy 需要授權,請務必傳遞您的憑證,例如:
--proxy=http://user:password@10.10.10.10:8888
在含有 Windows 和 Linux 節點的叢集中安裝 Connect Agent
Connect 代理程式必須在 Linux 節點上執行。如果您要在混合叢集 (同時包含 Linux 和 Windows 節點) 中安裝,可以將適當的節點選取器新增至部署定義,確保 Connect 代理程式部署至 Linux 節點。
執行下列指令,使用適當的節點選取器更新部署作業:
kubectl patch deployment \
$(kubectl get deployment -o=jsonpath='{.items[*].metadata.name}' -n gke-connect) \
-p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect
如要驗證更新是否成功,請執行下列指令:
kubectl get deployment -o=jsonpath='{.items[].spec.template.spec.nodeSelector}' -n gke-connect
指令應傳回:
{"kubernetes.io/os":"linux"}
疑難排解
如果在設定期間遇到任何問題,請參閱車隊建立疑難排解指南。
在連結的叢集上啟用 GKE Enterprise 功能
註冊叢集後,即可為應用程式啟用叢集上的可用 GKE Enterprise 功能。這些功能僅支援經過驗證的叢集類型。如要瞭解這些類型目前支援的功能版本,請參閱「版本和升級支援」。
下列指南說明如何在叢集上啟用支援的功能:
如要查看所有 GKE Enterprise 元件的完整說明文件集,包括教學課程、參考資料等,請參閱 GKE Enterprise 元件。
存取附加叢集
註冊連結的叢集後,該叢集會顯示在 Google Cloud console的 GKE 和 Anthos 叢集頁面中。不過,如要查看節點和工作負載等更多詳細資料,您必須登入叢集並完成驗證。如要從 Google Cloud 控制台登入已連結的叢集,請按照「從 Google Cloud 控制台登入叢集」一文中的操作說明進行。請注意,視您選擇的驗證方法而定,您或平台管理員可能需要進行一些額外設定,您或其他使用者才能登入叢集。
如要使用 Google Cloud 身分透過指令列存取連結的叢集,請參閱「透過 Connect 閘道連線至已註冊的叢集」。
如要使用現有的第三方識別資訊提供者向連結的叢集進行驗證 (僅限 AWS 上的 EKS 叢集,為預先發布功能),請參閱「為機群設定 GKE Identity Service」和「透過 GKE Identity Service 存取叢集」。