維護 Kubernetes 叢集

Google Distributed Cloud (GDC) 實體隔離方案可讓您在建立 Kubernetes 叢集後,使用 GKE on GDC 管理叢集。這項服務可讓您配合不斷變化的容器工作負載需求,並透過下列工作流程維護現有叢集節點:

本文適用於平台管理員群組中的 IT 管理員,他們負責管理託管於多個專案叢集中的容器工作負載;以及應用程式運算子群組中的開發人員,他們負責在單一專案中建立應用程式工作負載。詳情請參閱 GDC air-gapped 說明文件適用對象

事前準備

如要完成本文中的工作,您必須具備下列資源和角色:

  • 如要查看及管理共用 Kubernetes 叢集中的節點集區,請要求機構 IAM 管理員授予下列角色:

    • 使用者叢集管理員 (user-cluster-admin)
    • 使用者叢集節點檢視者 (user-cluster-node-viewer)

    這些角色不會繫結至專案命名空間。

  • 如要在標準 Kubernetes 叢集中查看及管理節點集區,請要求機構的 IAM 管理員授予您標準叢集管理員 (standard-cluster-admin) 角色。這個角色會繫結至專案命名空間。

  • 如要對 Kubernetes 叢集執行指令,請確認您具備下列資源:

    • 找出 Kubernetes 叢集名稱,或向平台管理員群組成員詢問叢集名稱。

    • 如果沒有 Kubernetes 叢集的 kubeconfig 檔案,請登入並產生該檔案。

    • 請使用 Kubernetes 叢集的 kubeconfig 路徑,替換這些操作說明中的 KUBERNETES_CLUSTER_KUBECONFIG

在專案階層中移動叢集

專案會提供服務執行個體的邏輯分組。您可以從 GDC 專案階層新增及移除共用的 Kubernetes 叢集,以便適當分組服務。標準叢集只能限定於單一專案,因此無法在專案階層中移動。

將專案附加至共用叢集

從 GDC 控制台建立共用叢集時,您必須先附加至少一個專案,才能順利將容器工作負載部署至該叢集。如必須在現有叢集中新增其他專案,請完成下列步驟:

  1. 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」
  2. 在叢集清單中按一下叢集,開啟「叢集詳細資料」頁面。
  3. 選取「附加專案」
  4. 從專案清單中選取要加入的可用專案。按一下「Save」(儲存)

將專案從共用叢集中分離

如要將專案從現有共用叢集中分離,請完成下列步驟:

  1. 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」
  2. 在叢集清單中按一下叢集,開啟「叢集詳細資料」頁面。
  3. 按一下「中斷連結」,即可中斷專案與叢集的連結。

查看機構中的所有叢集

您可以查看機構中的所有可用 Kubernetes 叢集,包括狀態、Kubernetes 版本和其他詳細資料。

由於 Kubernetes 叢集是區域資源,因此您只能列出每個區域的叢集。

控制台

  • 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」

    系統會顯示機構中所有可用的共用叢集,以及這些叢集的狀態和其他資訊:

    叢集詳細資料頁面,可查看機構中每個共用叢集的狀態和其他資訊。

gdcloud

  • 列出機構中可用的區域共用叢集:

    gdcloud clusters list
    

    輸出結果會與下列內容相似:

    CLUSTERREF.NAME   READINESS.STATE   TYPE   CURRENTVERSION.USERCLUSTERVERSION     CURRENTVERSION.SUPPORT.STATUS
    user-vm-1         Ready             user   1.15.0-gdch.394225-1.28.15-gke.1200   In Support
    user-vm-2         Ready             user   1.15.0-gdch.394225-1.29.12-gke.800    In Support
    

API

  • 列出機構中區域可用的 Kubernetes 叢集:

    kubectl get clusters.cluster.gdc.goog -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    更改下列內容:

    • MANAGEMENT_API_SERVER:區域 API 伺服器的 kubeconfig 路徑。如果尚未為目標區域中的 API 伺服器產生 kubeconfig 檔案,請參閱登入一文瞭解詳情。
    • KUBERNETES_CLUSTER_NAMESPACE:叢集的命名空間。如果是共用叢集,請使用 platform 命名空間。如果是標準叢集,請使用叢集的專案命名空間。

    輸出結果會與下列內容相似:

    NAME        STATE     K8S VERSION
    user-vm-1   Running   1.25.10-gke.2100
    user-test   Running   1.26.5-gke.2100
    

列出叢集可用的 Kubernetes 版本

您可以列出 GDC 區域中可用的 Kubernetes 版本,確認叢集中可存取的 Kubernetes 功能。

  • 列出可用區域中的 Kubernetes 版本:

    kubectl get userclustermetadata.upgrade.private.gdc.goog \
        -o=custom-columns=K8S-VERSION:.spec.kubernetesVersion \
        --kubeconfig MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER 替換為叢集區域 API 伺服器的 kubeconfig 檔案。

    輸出看起來類似以下內容:

    K8S-VERSION
    1.25.10-gke.2100
    1.26.5-gke.2100
    1.27.4-gke.500
    

查看可更新的屬性

建立 Kubernetes 叢集後,您可以變更一組屬性。您只能變更 Cluster 自訂資源中的可變更屬性。spec叢集佈建完成後,並非所有 spec 屬性都可更新。如要查看這些可更新的屬性,請完成下列步驟:

控制台

  1. 在導覽選單中,依序選取「Kubernetes Engine」>「叢集」

  2. 在 Kubernetes 叢集清單中,按一下叢集名稱即可查看叢集屬性。

  3. 可編輯的屬性會顯示「編輯」圖示。

kubectl

  • 查看 Cluster 規格的屬性清單,以及每個屬性對應的有效值:

    kubectl explain clusters.cluster.gdc.goog.spec \
        --kubeconfig MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER 替換為區域 API 伺服器的 kubeconfig 路徑。如果尚未為目標區域中的 API 伺服器產生 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 GDC air-gapped 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, GDC maintains the cluster versions for
        users. Optional. Mutable.
    

    使用 GDC 控制台或 kubectl CLI 更新這些設定。 舉例來說,您可以調整節點集區大小

後續步驟