本文說明如何在 Google Kubernetes Engine (GKE) 中管理叢集。如要瞭解叢集的運作方式,請參閱叢集架構。
事前準備
開始之前,請確認您已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
查看叢集
gcloud
如要查看特定叢集,請執行下列指令:
gcloud container clusters describe CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION更改下列內容:
CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。如果是地區叢集,請提供區域;如果是區域叢集,請提供可用區。
如要列出專案中任何區域或可用區的所有叢集,請執行下列指令:
gcloud container clusters list如要列出特定區域或地帶中的叢集,請執行下列指令:
gcloud container clusters list \ --location=CONTROL_PLANE_LOCATION
控制台
如要查看叢集,請前往 Cloud de Confiance 控制台的「Google Kubernetes Engine」頁面。
如要進一步瞭解叢集,請從清單中選取叢集。
設定 kubectl 的預設叢集
如果有多個叢集,則可以設定 kubectl 指令列工具的預設叢集。
詳情請參閱「為 kubectl 指令設定預設叢集」。
設定 gcloud 的預設叢集
如要設定 gcloud 指令的預設叢集,請執行下列指令:
gcloud config set container/cluster CLUSTER_NAME
將 CLUSTER_NAME 替換為叢集名稱。
升級叢集
根據預設,GKE 會自動升級叢集。不過,您可以選擇自行升級標準叢集。詳情請參閱手動升級叢集。
如需升級叢集的相關指引,請參閱升級叢集的最佳做法。
在 Standard 叢集中新增或移除可用區
下列各節說明如何新增或移除叢集區域。所有區域都必須位在叢集的地區中。
變更區域叢集的區域
對於現有的區域叢集,您可以新增或移除區域。
gcloud
如要為區域叢集新增或移除區域,請使用 gcloud container
clusters update 指令:
gcloud container clusters update CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE1,COMPUTE_ZONE2
更改下列內容:
CLUSTER_NAME:您為叢集選擇的名稱。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 區域。COMPUTE_ZONE1,COMPUTE_ZONE2,[...]:建立節點的可用區。您可以視叢集需求指定任意數量的區域。所有區域都必須與叢集的控制層位於同一個區域,並由--location旗標指定。如果是區域叢集,--node-locations必須包含叢集的主要區域。
例如,example-cluster 是在 us-central1-a 中執行。如要在叢集中額外新增兩個區域,請執行下列指令:
gcloud container clusters update example-cluster \
--location us-central1-a
--node-locations us-central1-a,us-central1-b,us-central1-c
在另一個範例中,example-cluster 在 us-central1-a、us-central1-b 和 us-central1-c中執行。如果只要叢集在 us-central1-a 和 us-central1-b 中執行,則可以執行下列指令:
gcloud container clusters update example-cluster \
--location us-central1-a \
--node-locations us-central1-a,us-central1-b
主控台
如要在現有的區域中新增或移除區域,請執行下列步驟:
前往 Cloud de Confiance 控制台的「Google Kubernetes Engine」頁面。
按一下要編輯的叢集旁的more_vert「Actions」(動作),然後按一下edit「Edit」(編輯)。
在「詳細資料」分頁的「預設節點區域」欄位下方,按一下「編輯節點集區」edit。
選取所需區域,然後儲存變更。
變更地區叢集的區域
目前,只能使用 gcloud 指令變更現有地區叢集的區域。
如要為地區叢集新增或移除區域,請使用 gcloud container
clusters update 指令並加上 --node-locations 旗標:
gcloud container clusters update CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE1,COMPUTE_ZONE2
更改下列內容:
CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 區域。COMPUTE_ZONE1、COMPUTE_ZONE2,[...]:節點建立所在的可用區控制層區域。這些區域必須與叢集控制層位於相同的CONTROL_PLANE_LOCATION,並以--location旗標指定。
例如,example-cluster 是在 us-central1-a 和 us-central1-b 中執行。如要新增 us-central1-c,請執行下列指令:
gcloud container clusters update example-cluster \
--location us-central1 \
--node-locations us-central1-a,us-central1-b,us-central1-c
在另一個範例中,example-cluster 在 us-central1-a、us-central1-b 和 us-central1-c中執行。如果只要叢集在 us-central1-a 和 us-central1-b 中執行,則可以執行下列指令:
gcloud container clusters update example-cluster \
--location us-central1 \
--node-locations us-central1-a,us-central1-b
調整叢集大小
您可以調整標準叢集的大小,增加或縮減該叢集中的節點個數。舉例來說,如要停止叢集耗用資源,但不想刪除叢集,可以將節點縮減至零個。如要進一步瞭解如何調整大小,請參閱「調整叢集大小」。
Autopilot 叢集會根據 Pod 規格自動調整大小,因此您不必擔心叢集大小問題。舉例來說,如果您變更 Pod 的副本數量或要求的資源,叢集就會適當擴大或縮減規模。
如要以更有效率的方式最佳化叢集,也可以使用垂直自動調度 Pod 資源 (VPA)。自動調度器可以建議 CPU/記憶體要求和相關限制的值,這些值也可自動更新。
刪除叢集
如要刪除叢集,詳情請參閱「刪除叢集」。
使用拒絕政策防止叢集遭到刪除
您可以透過 IAM 拒絕政策,防止刪除特定重要叢集,無論嘗試刪除的主體為何都適用。如要在拒絕政策中指定叢集,請為這些叢集新增標記。然後使用拒絕條件,只對含有該標記的叢集套用拒絕政策。
如要防止特定叢集遭到刪除,請按照下列步驟操作:
建立及定義標記鍵,以識別受保護的叢集。舉例來說,您可以建立名為
do_not_delete的標記鍵。選取下列任一選項,建立 IAM 拒絕政策:
控制台
前往 Cloud de Confiance 控制台的「IAM」頁面,然後點選「拒絕」分頁標籤。
按一下「建立拒絕政策」。「建立拒絕政策」頁面隨即開啟。
在「ID」欄位中,指定拒絕政策的專屬固定 ID。
在「New deny rule」(新增拒絕規則) 部分,執行下列操作:
在「Denied principals」(遭拒主體) 欄位中,指定
principalSet://goog/public:all,涵蓋所有主體。在「Denied permissions」(遭拒絕的權限) 部分,找出並選取「Permission 1」(權限 1) 下拉式清單中的
container.googleapis.com/clusters.delete權限。按一下「新增拒絕條件」。「新增拒絕條件」窗格隨即開啟。
為條件指定資訊豐富的標題,例如
Cluster has the do_not_delete tag。在「條件建構工具」分頁中,從「條件類型 1」 下拉式清單中選取「標記」。
在「運算子」下拉式清單中,選取「有鍵」。
在「Key path」(金鑰路徑) 下拉式清單中,選取您套用至叢集的標記鍵,例如
do_not_delete。按一下 [儲存]。
點選「建立」。
gcloud
建立包含下列拒絕政策的 JSON 檔案:
{ "displayName": "Prevent cluster deletion based on tag", "rules": [ { "description": "Prevent cluster deletion based on tag", "deniedPrincipals": [ "principalSet://goog/public:all" ], "deniedPermissions": [ "container.googleapis.com/clusters.delete" ], "denialCondition": { "title": "Cluster has the do_not_delete tag", "expression": "resource.hasTagKey('TAG_KEY_NAME') } } ] }將
TAG_KEY_NAME替換為您建立的標記鍵路徑。使用
gcloud iam policies create指令建立拒絕政策:gcloud iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies --policy-file=POLICY_FILE更改下列內容:
POLICY_ID:拒絕政策的 ID。ATTACHMENT_POINT:要附加拒絕政策的機構、資料夾或專案。舉例來說,如果您將拒絕性政策附加至資料夾,該政策會套用至該資料夾中任何專案的叢集。詳情請參閱「附件點」。POLICY_FILE:您在上一個步驟中建立的 JSON 檔案路徑。
建立拒絕政策後,任何人都無法刪除具有拒絕條件中指定標記鍵的叢集。嘗試刪除叢集時會失敗,並顯示 Permission denied 錯誤訊息。如要允許刪除叢集,請務必從叢集卸離該標記鍵。
將叢集新增至機群
如果貴機構使用多個叢集,您可以將叢集新增至機群 (Kubernetes 叢集的邏輯分組),簡化多叢集管理作業。建立機群後,貴機構就能將管理單位從個別叢集提升為整個叢集群組,並使用支援機群的功能,例如多叢集 Ingress、 Config Sync 和 Policy Controller。
您可以使用Cloud de Confiance 控制台、gcloud CLI,或以宣告方式使用 Terraform 或 Config Connector,將 GKE 叢集新增至機群。
如要進一步瞭解機群的運作方式,請參閱「機群管理」一文;如要瞭解如何建立機群,請參閱「建立機群來簡化多叢集管理作業」一文。