Google Distributed Cloud air-gapped 裝置 (GDC) 可讓您在建立 Kubernetes 叢集後進行管理,以因應不斷變化的容器工作負載需求。
執行節點維護作業
如要維修或維護節點,請先將節點設為維護模式。如將節點設為維護模式,系統會以安全的方式清空 Pod/工作負載,並從 Pod 排程中排除節點。在維護模式下,您可以處理節點,而且不會有 Pod 流量中斷的風險。
運作方式
GDC 的維護模式與針對特定節點執行 kubectl
cordon 和 kubectl drain 類似。以下是與維護模式相關的幾項詳細資訊:
- 系統會將指定的節點標示為不可排程。這項操作由
kubectl cordon執行。 - 系統會將節點 taint 新增至指定節點,表示節點上無法排程或執行任何 Pod。這項操作與
kubectl drain類似。 - 系統會強制執行 20 分鐘的逾時設定,確保節點不會因等待 Pod 終止而停滯。如果 Pod 設定為容許所有汙點,或有終結器,可能不會終止。GDC 叢集會嘗試終止所有 Pod,但如果超過逾時時間,節點就會進入維護模式。這項逾時設定可避免執行中的 Pod 阻礙升級。
- 如果節點上執行以 VM 為基礎的工作負載,GDC 叢集會將
NodeSelector套用至虛擬機器執行個體 (VMI) Pod,然後停止該 Pod。NodeSelector可確保節點從維護模式移除時,VMI Pod 會在同一節點上重新啟動。
讓節點進入維護模式
在叢集設定檔的 maintenanceBlocks 區段中,為所選節點指定 IP 位址範圍,選擇要進入維護模式的節點。所選節點必須處於 Ready 狀態,且在叢集中運作。
如要讓節點進入維護模式,請按照下列步驟操作:
編輯叢集設定檔,選取要進入維護模式的節點。
您可以使用所選的編輯器編輯設定檔,也可以執行下列指令,直接編輯叢集自訂資源:
kubectl -n CLUSTER_NAMESPACE edit cluster CLUSTER_NAME更改下列內容:
- CLUSTER_NAMESPACE:叢集的命名空間。
- CLUSTER_NAME:叢集名稱。
將
maintenanceBlocks區段新增至叢集設定檔,為要進入維護模式的節點指定單一 IP 位址或位址範圍。下列範例說明如何指定 IP 位址範圍,選取多個節點:
... metadata: name: my-cluster namespace: cluster-my-cluster spec: maintenanceBlocks: cidrBlocks: - 172.16.128.1-172.16.128.64 ...儲存並套用更新後的叢集設定:
kubectl apply -f my-cluster.yaml套用叢集設定後,叢集會將適用的節點設為維護模式。
執行下列指令,取得叢集中節點的狀態:
kubectl get nodes -n CLUSTER_NAME回應內容如下所示:
NAME STATUS ROLES AGE VERSION user-gdch-01 Ready master 2d22h v1.23.5-gke.1502 user-gdch-04 Ready none 2d22h v1.23.5-gke.1502 user-gdch-05 Ready,SchedulingDisabled none 2d22h v1.23.5-gke.1502 user-gdch-06 Ready none 2d22h v1.23.5-gke.1502SchedulingDisabled狀態表示節點處於維護模式。執行下列指令,取得處於維護模式的節點數量:
kubectl get nodepools回應類似下列輸出內容:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN np1 3 0 0 1 0這個範例中的
UNDERMAINTENANCE欄顯示一個節點處於維護模式。叢集也會在節點進入維護模式時,將下列汙點新增至節點:
baremetal.cluster.gke.io/maintenance:NoExecutebaremetal.cluster.gke.io/maintenance:NoSchedule
調整節點集區大小
GDC 環境中的任何使用者叢集都可以調整節點集區大小,以因應工作負載變化。如要在使用者叢集中管理節點集區,您必須具備「使用者叢集管理員」 (user-cluster-admin) 角色。
如要調度現有叢集中的節點集區,請完成下列步驟:
主控台
- 在資訊主頁中,選取要編輯的叢集所在專案。
- 在導覽選單中,選取「叢集」。
- 選取節點集區相關聯的叢集名稱。「叢集詳細資料」頁面隨即顯示。
- 按一下「節點集區」分頁標籤。
- 選取要調整大小的節點集區的「編輯」edit圖示,系統會顯示「編輯節點集區」提示。
更新「節點數量」欄位,反映節點集區中所需的新節點數量。您可以增加或減少節點數量,以符合工作負載需求。
按一下 [儲存]。
返回叢集的「節點集區」分頁,確認調整大小後的節點集區狀態為
Ready,且節點數量正確無誤。節點集可能需要幾分鐘的時間,才能根據您的規格進行調整。
API
使用互動式編輯器,透過
kubectlCLI 開啟Cluster自訂資源規格:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ORG_ADMIN_CLUSTER_KUBECONFIG更新要調整大小的節點集區的
nodeCount欄位:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODES將
NUMBER_OF_WORKER_NODES換成要在節點集區中佈建的更新工作站節點數量。儲存檔案並結束編輯器。
檢查節點集區的設定,確認節點擴縮作業已完成:
kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform -o json \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG | jq .status.workerNodePoolStatuses確認
readyNodes數字反映您為節點集區設定的節點數量。節點集區可能需要幾分鐘的時間,才能按照您的規格調整大小。
查看機構中的所有叢集
您可以查看機構中的所有可用使用者叢集,包括狀態、Kubernetes 版本和其他詳細資料。
主控台
在導覽選單中,選取「叢集」。
系統會顯示機構中所有可用的叢集,以及這些叢集的狀態和其他資訊:

kubectl
列出機構中可用的使用者叢集:
kubectl get clusters.cluster.gdc.goog -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG輸出結果會與下列內容相似:
NAME STATE K8S VERSION user-vm-1 Running 1.25.10-gke.2100 user-test Running 1.26.5-gke.2100
查看可更新的屬性
建立每個使用者叢集後,您都可以變更一組屬性。您只能變更 Cluster 自訂資源中的可變更屬性。spec叢集佈建完成後,並非所有 spec 中的屬性都可更新。如要查看這些可更新的屬性,請完成下列步驟:
主控台
在導覽選單中,選取「叢集」。
在使用者叢集清單中,按一下叢集名稱即可查看其屬性。
可編輯的屬性會顯示「編輯」圖示 edit。
kubectl
查看
Cluster規格的屬性清單,以及每個屬性對應的有效值:kubectl explain clusters.cluster.gdc.goog.spec \ --kubeconfig ORG_ADMIN_CLUSTER_KUBECONFIG輸出結果會與下列內容相似:
KIND: Cluster VERSION: cluster.gdc.goog/v1 RESOURCE: spec <Object> DESCRIPTION: <empty> FIELDS: clusterNetwork <Object> The cluster network configuration. If unset, the default configurations with pod and service CIDR sizes are used. Optional. Mutable. initialVersion <Object> The GDCH version information of the user cluster during cluster creation. Optional. Default to use the latest applicable version. Immutable. loadBalancer <Object> The load balancer configuration. If unset, the default configuration with the ingress service IP address size is used. Optional. Mutable. nodePools <[]Object> The list of node pools for the cluster worker nodes. Optional. Mutable. releaseChannel <Object> The release channel a cluster is subscribed to. When a cluster is subscribed to a release channel, GDCH maintains the cluster versions for users. Optional. Mutable.如要更新這些設定,請使用 GDC 控制台或
kubectlCLI。例如,您可以調整節點集區的大小。
調整 Ingress 服務 IP 位址大小
建立使用者叢集後,您可以調整 Ingress 服務 IP 位址大小。
使用互動式編輯器,透過
kubectlCLI 開啟Cluster自訂資源規格:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG將「
ingressServiceIPSize」欄位更新為新的 IP 位址大小:... spec: ... loadBalancer: ingressServiceIPSize: INGRESS_SERVICE_IP_SIZE ...將
INGRESS_SERVICE_IP_SIZE替換為更新後的 Ingress 服務 IP 位址大小。儲存檔案並結束編輯器。
沒有設定 Ingress 服務 IP 位址大小的限制。我們會根據貴機構的需求,提供您要求的 IP 位址數量。如果無法完成要求,叢集會回報錯誤。