機群可讓您同時管理多個叢集的企業級和其他機群支援功能。舉例來說,您可以套用一組通用政策,或在叢集機群中建立單一服務網格。本頁面將概略說明如何管理車隊功能。如要進一步瞭解如何設定及使用個別功能,請參閱相關文件。
如果您已啟用 Google Kubernetes Engine (GKE) Enterprise 版,可以透過 Google Cloud 控制台管理功能。所有車隊使用者都能透過指令列管理功能。
部分功能可讓您為機群叢集建立機群層級的預設功能設定。舉例來說,您可以確保在機群中建立的每個叢集都已安裝及設定 Policy Controller。只有啟用 GKE Enterprise 的使用者,才能使用機群層級的預設設定。
如要進一步瞭解叢集上的機群層級功能管理作業「幕後」運作方式,請參閱「功能授權」一節。
車隊層級功能
您可以在機群層級管理下列功能:
- 代管 Cloud Service Mesh
- 安全防護機制
- Config Sync
- Policy Controller
- GKE 身分識別服務
- 多叢集 Ingress
- 多叢集服務 (僅限 GKE 叢集)
- 二進位授權的持續驗證
這份清單並未列出所有使用或需要車隊的功能。舉例來說,機群 Workload Identity 聯盟依賴叢集成為機群成員,但不需要在機群層級進行設定,而 Cloud Service Mesh 則要求所有控制層和設定選項都必須加入機群。
如果您已啟用 GKE Enterprise,即可使用所有這些功能,不必支付額外費用。如果您使用 GKE 標準層級,可以付費並個別使用這些功能的部分子集。如要進一步瞭解哪些環境提供哪些功能,請參閱「部署選項」頁面。
設定機群層級功能
下列各節說明如何啟用及設定車隊層級功能。
如要使用機群層級功能,在大多數情況下,您需要為機群啟用功能,並為機群成員設定功能。如要搭配叢集和工作負載使用這項功能,通常需要進行一些設定 (或其他額外設定)。
如果您已啟用 GKE Enterprise,可以為部分功能建立機群預設叢集設定,也就是說,您在機群中建立的任何新 Enterprise 級叢集,都會使用您指定的該功能設定。如要使用其他功能,或未使用企業級別,則必須在每個叢集上設定功能。
啟用機群層級預設功能
使用 GKE Enterprise 時,您可以為部分功能建立 GKE 叢集的機群層級預設設定。建立這些設定後,您在叢集建立期間註冊的任何企業級 GKE 叢集,都會自動套用機群層級的設定。舉例來說,如果您為 Policy Controller 設定預設值,機群中建立的每個新叢集都會安裝您指定的 Policy Controller 版本,並採用您指定的政策套裝組合和其他設定。系統不會自動將機群預設設定套用至現有機群成員叢集,但您可以使用 Google Cloud 控制台,將現有叢集同步至預設設定。
如要透過機群層級預設值啟用功能,一般程序如下:
主控台
在車隊主專案中,前往「功能管理工具」頁面:
如要透過 Google Cloud 控制台設定機群層級預設值,請前往「機群層級功能管理」。
針對所選功能按一下「設定」,然後按照指示啟用功能並設定預設值。
選用:選取並將機群中的現有叢集與新設定同步。
gcloud
- 建立 YAML 檔案,指定所選功能的機群預設值。
針對這項功能執行
enable
指令,並傳遞設定檔。每個車隊層級功能都有自己的enable
指令。舉例來說,如要為車隊啟用 Cloud Service Mesh,並使用mesh.yaml
中指定的預設設定,請在車隊主機專案中執行下列指令:gcloud container fleet mesh enable --fleet-default-member-config mesh.yaml
或者,您也可以使用 fleet create
或 fleet update
指令的參數,為部分功能指定車隊預設值。詳情請參閱所選功能的指南。
Terraform
定義 google_gke_hub_feature
資源,並使用 fleet_default_member_config
區塊指定所選機群預設值。如需詳細資料和支援的機群功能,請參閱 Terraform 說明文件。
並非所有功能都支援使用這些選項設定機群預設設定。如需如何為各項支援功能設定車隊預設值的詳細操作說明,請參閱下列文件:
- Cloud Service Mesh
- Config Sync
- Policy Controller
- 安全防護機制
- GKE Identity Service (僅限指令列)
- 二進位授權的持續驗證 (僅限預先發布版本,且只能透過指令列使用)
在個別叢集上啟用及設定機群功能
除了機群預設設定,您也可以選擇在個別叢集上分別設定機群功能。如果符合下列條件,這或許是不錯的選擇:
- 您未啟用 GKE Enterprise。
- 您想設定現有叢集,以便使用某項功能。
- 您想使用的服務沒有機群預設設定,或無法透過所選工具使用。
啟用功能
請注意,並非所有功能都需要執行這個步驟。詳情請參閱所選功能的指南。
主控台
如果您已啟用 GKE Enterprise,可以從 Google Cloud 控制台的「功能管理工具」頁面啟用功能。
如要為車隊啟用功能,請按照下列步驟操作:
在車隊主專案中,前往「功能管理工具」頁面:
如要啟用但無法透過這個頁面設定的功能,請參閱「管理其他企業級功能」。
在要啟用的功能面板中,按一下「啟用」。
在顯示的詳細資料面板中,按一下「啟用...」按鈕。
gcloud
每個車隊層級功能都有專屬的 enable
指令。舉例來說,如要為機群啟用 GKE Identity Service,請在機群主專案中執行下列指令:
gcloud container fleet identity-service enable
如需完整的指令清單,請參閱 Google Cloud SDK 參考說明文件 (以及對應的 Beta 版和 Alpha 版),或參閱個別功能說明文件集瞭解詳情。
如要瞭解如何檢查功能是否已啟用,以及查看其他功能狀態,請參閱「查看機群功能狀態」。
設定個別叢集
設定步驟會因功能而異。詳情請參閱下列指南:
查看機群功能狀態
如果您已啟用 GKE Enterprise,如要查看機群功能狀態,最簡單的方法就是使用 Google Cloud 控制台中的「功能管理員」資訊主頁。
對於支援的功能,這個頁面會顯示機群叢集具有下列狀態的數量:
- 啟用這項功能
- 成功啟用這項功能
- 這項功能有警告
- 這項功能發生錯誤
您也可以查看是否已為功能設定機群預設設定,以及有多少機群成員叢集採用這些設定。如要查看已啟用功能,可以點選詳細資料頁面,其中會列出使用該功能的叢集,並在設定完成後,選取叢集並與機群預設設定同步。
如要設定無法透過這個頁面設定的功能 (列在「管理其他企業就緒功能」下方),您可以查看功能是否已為機群啟用,並查看詳細資料面板,瞭解有多少叢集安裝了該功能和其他相關資訊。
使用 gcloud 查看功能狀態
gcloud
執行下列指令,列出所有已啟用的功能:
gcloud container fleet features list
停用車隊層級功能
如要在機群層級停用功能,請在機群主機專案中執行下列操作。
主控台
只有「管理其他企業級功能」下方列出的機群功能,才能透過 Google Cloud 控制台停用。
在車隊主專案中,前往「功能管理工具」頁面:
在要停用的功能面板中,按一下「詳細資料」。
在顯示的詳細資料面板中,按一下「停用...」按鈕。
gcloud
每個車隊層級功能都有專屬的 disable
指令。舉例來說,如要為車隊停用 Cloud Service Mesh,請在車隊主機專案中執行下列指令:
gcloud container fleet mesh disable
如需完整的指令清單,請參閱 Google Cloud SDK 參考說明文件 (以及對應的 Beta 版和 Alpha 版),或參閱個別功能說明文件集瞭解詳情。
如要瞭解車隊停用某項功能後的預期行為,請參閱相關功能說明文件。在許多情況下,相關設定仍存在於叢集上,但您無法再使用 fleet 指令或 Google Cloud 控制台集中管理這項功能。
功能授權
如要在機群層級管理功能,必須透過角色型存取權控制機制授權,才能在叢集上執行功能。 Google Cloud使用名為「功能授權者」的服務,自動設定及更新機群啟用功能的權限,因此您不必在每個叢集上手動設定功能權限,尤其是在 Google 發布功能更新時。
註冊叢集時,套用至叢集的資訊清單會包含 ClusterRoleBinding
,可授予叢集上的功能授權者 cluster-admin
角色,且該角色會附加至名為 service-project-number@gcp-sa-gkehub.iam.gserviceaccount.com
的服務帳戶。
在專案中停用支援機群的功能時,Feature Authorizer 會刪除該功能對應的 ClusterRole
和 ClusterRoleBinding
,移除該功能在叢集上運作的能力。
在稽核記錄中查看功能授權者
如要在 GKE 稽核記錄中查看 Feature Authorizer 活動,請按照下列步驟操作:
在 Google Cloud 控制台中開啟記錄檔探索工具。
執行下列進階查詢:
resource.type="k8s_cluster" resource.labels.cluster_name="CLUSTER_NAME" resource.labels.location="CLUSTER_LOCATION" protoPayload.authenticationInfo.principalEmail="system:serviceaccount:gke-connect:connect-agent-sa" protoPayload.authenticationInfo.authoritySelector="service-PROJECT_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com"
更改下列內容:
CLUSTER_NAME
:要查看記錄的叢集名稱。CLUSTER_LOCATION
:叢集建立所在的 Google Cloud 位置。PROJECT_NUMBER
:擁有叢集的專案的 Google Cloud 專案編號。
如果是非 GKE 叢集,請找出 Kubernetes 稽核記錄的儲存位置,然後執行類似的查詢。