管理機群層級功能

機群可讓您同時管理多個叢集的企業級和其他機群支援功能。舉例來說,您可以套用一組通用政策,或在叢集機群中建立單一服務網格。本頁面將概略說明如何管理車隊功能。如要進一步瞭解如何設定及使用個別功能,請參閱相關文件。

如果您已啟用 Google Kubernetes Engine (GKE) Enterprise 版,可以透過 Google Cloud 控制台管理功能。所有車隊使用者都能透過指令列管理功能。

部分功能可讓您為機群叢集建立機群層級的預設功能設定。舉例來說,您可以確保在機群中建立的每個叢集都已安裝及設定 Policy Controller。只有啟用 GKE Enterprise 的使用者,才能使用機群層級的預設設定。

如要進一步瞭解叢集上的機群層級功能管理作業「幕後」運作方式,請參閱「功能授權」一節。

車隊層級功能

您可以在機群層級管理下列功能:

這份清單並未列出所有使用或需要車隊的功能。舉例來說,機群 Workload Identity 聯盟依賴叢集成為機群成員,但不需要在機群層級進行設定,而 Cloud Service Mesh 則要求所有控制層和設定選項都必須加入機群。

如果您已啟用 GKE Enterprise,即可使用所有這些功能,不必支付額外費用。如果您使用 GKE 標準層級,可以付費並個別使用這些功能的部分子集。如要進一步瞭解哪些環境提供哪些功能,請參閱「部署選項」頁面。

設定機群層級功能

下列各節說明如何啟用及設定車隊層級功能。

如要使用機群層級功能,在大多數情況下,您需要為機群啟用功能,並為機群成員設定功能。如要搭配叢集和工作負載使用這項功能,通常需要進行一些設定 (或其他額外設定)。

如果您已啟用 GKE Enterprise,可以為部分功能建立機群預設叢集設定,也就是說,您在機群中建立的任何新 Enterprise 級叢集,都會使用您指定的該功能設定。如要使用其他功能,或未使用企業級別,則必須在每個叢集上設定功能。

啟用機群層級預設功能

使用 GKE Enterprise 時,您可以為部分功能建立 GKE 叢集的機群層級預設設定。建立這些設定後,您在叢集建立期間註冊的任何企業級 GKE 叢集,都會自動套用機群層級的設定。舉例來說,如果您為 Policy Controller 設定預設值,機群中建立的每個新叢集都會安裝您指定的 Policy Controller 版本,並採用您指定的政策套裝組合和其他設定。系統不會自動將機群預設設定套用至現有機群成員叢集,但您可以使用 Google Cloud 控制台,將現有叢集同步至預設設定。

如要透過機群層級預設值啟用功能,一般程序如下:

主控台

  1. 在車隊主專案中,前往「功能管理工具」頁面:

    前往功能管理工具

    如要透過 Google Cloud 控制台設定機群層級預設值,請前往「機群層級功能管理」

  2. 針對所選功能按一下「設定」,然後按照指示啟用功能並設定預設值。

  3. 選用:選取並將機群中的現有叢集與新設定同步。

gcloud

  1. 建立 YAML 檔案,指定所選功能的機群預設值。
  2. 針對這項功能執行 enable 指令,並傳遞設定檔。每個車隊層級功能都有自己的 enable 指令。舉例來說,如要為車隊啟用 Cloud Service Mesh,並使用 mesh.yaml 中指定的預設設定,請在車隊主機專案中執行下列指令:

    gcloud container fleet mesh enable --fleet-default-member-config mesh.yaml
    

或者,您也可以使用 fleet createfleet update 指令的參數,為部分功能指定車隊預設值。詳情請參閱所選功能的指南。

Terraform

定義 google_gke_hub_feature 資源,並使用 fleet_default_member_config 區塊指定所選機群預設值。如需詳細資料和支援的機群功能,請參閱 Terraform 說明文件

並非所有功能都支援使用這些選項設定機群預設設定。如需如何為各項支援功能設定車隊預設值的詳細操作說明,請參閱下列文件:

在個別叢集上啟用及設定機群功能

除了機群預設設定,您也可以選擇在個別叢集上分別設定機群功能。如果符合下列條件,這或許是不錯的選擇:

  • 您未啟用 GKE Enterprise。
  • 您想設定現有叢集,以便使用某項功能。
  • 您想使用的服務沒有機群預設設定,或無法透過所選工具使用。

啟用功能

請注意,並非所有功能都需要執行這個步驟。詳情請參閱所選功能的指南。

主控台

如果您已啟用 GKE Enterprise,可以從 Google Cloud 控制台的「功能管理工具」頁面啟用功能。

如要為車隊啟用功能,請按照下列步驟操作:

  1. 在車隊主專案中,前往「功能管理工具」頁面:

    前往功能管理工具

    如要啟用但無法透過這個頁面設定的功能,請參閱「管理其他企業級功能」。

  2. 在要啟用的功能面板中,按一下「啟用」

  3. 在顯示的詳細資料面板中,按一下「啟用...」按鈕。

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 控制台停用。

  1. 在車隊主專案中,前往「功能管理工具」頁面:

    前往功能管理工具

  2. 在要停用的功能面板中,按一下「詳細資料」

  3. 在顯示的詳細資料面板中,按一下「停用...」按鈕。

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 會刪除該功能對應的 ClusterRoleClusterRoleBinding,移除該功能在叢集上運作的能力。

在稽核記錄中查看功能授權者

如要在 GKE 稽核記錄中查看 Feature Authorizer 活動,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中開啟記錄檔探索工具。

    前往「Logs」(記錄) 頁面

  2. 執行下列進階查詢:

    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 稽核記錄的儲存位置,然後執行類似的查詢。