檢查有狀態工作負載

本文說明如何檢查在 Google Distributed Cloud (GDC) 實體隔離 Kubernetes 叢集中執行的現有有狀態工作負載。有狀態工作負載可讓您使用永久容器儲存空間執行應用程式。您可以使用 GDC 控制台或 kubectl CLI 查看有狀態工作負載,監控資源用量和工作負載健康狀態。

本文適用於應用程式營運商群組中的開發人員,他們負責管理組織的應用程式工作負載。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。

事前準備

如要完成本文件中的工作,您必須要求必要權限並準備環境。

要求 IAM 角色

您必須具備特定角色,才能取得查看及檢查有狀態工作負載所需的權限。所需角色取決於您是在組織範圍的共用叢集,還是專案範圍的標準叢集內作業。詳情請參閱「Kubernetes 叢集設定」。

共用叢集角色

請要求 IAM 專案管理員根據要執行的工作,在專案命名空間中授予您下列角色:

  • 工作負載檢視者 (workload-viewer):查看部署至共用叢集的所有工作負載。
  • 命名空間管理員 (namespace-admin):在共用叢集專案命名空間中建立、刪除、編輯或查看工作負載。

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

標準叢集角色

如要在標準叢集中建立、刪除、編輯或查看工作負載,請要求 IAM 專案管理員授予您叢集開發人員 (cluster-developer) 角色。這個角色會繫結至專案命名空間。

準備環境

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

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

  • 登入並產生 Kubernetes 叢集的 kubeconfig 檔案。

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

查看專案的容器工作負載

如要查看專案的容器工作負載,請完成下列步驟:

控制台

  • 在導覽選單中,依序選取「Kubernetes Engine」>「工作負載」。

    您可以查看容器工作負載的詳細資料,例如:

    • 名稱
    • 類型
    • Pod 數量
    • Kubernetes 叢集
    • 上次修改日期

    容器工作負載會依所屬的 Kubernetes 叢集分類。選取「Cluster」(叢集) 下拉式選單,切換叢集背景資訊。

kubectl

  • 執行下列指令,列出專案中的所有 Pod:

    kubectl get pods -n PROJECT_NAMESPACE
    

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

    NAME                        READY   STATUS    RESTARTS   AGE
    nginx-workload-ah-aa-1228   1/1     Running   0          12h
    nginx-workload-ah-ab-6784   1/1     Running   0          11h
    nginx-workload-ah-ac-0045   1/1     Running   0          12h
    

檢查 StatefulSet 資源

如要要求 StatefulSet 資源元件的詳細資訊,請執行直接指定要檢查實體的指令。

取得 StatefulSet 物件資訊

如要取得 StatefulSet 物件的詳細資訊,請執行:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe statefulset STATEFULSET_NAME

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行 StatefulSet 物件的叢集 kubeconfig 檔案。

  • NAMESPACE:命名空間。如果是共用叢集,則必須是專案命名空間。如果是標準叢集,則可以是任何命名空間。

  • STATEFULSET_NAME:StatefulSet 物件的名稱。

以 YAML 格式顯示即時設定

如要以 YAML 格式顯示 StatefulSet 資源的即時設定,請執行下列指令:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get statefulset STATEFULSET_NAME -o yaml

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行 StatefulSet 物件的叢集 kubeconfig 檔案。

  • NAMESPACE:命名空間。如果是共用叢集,則必須是專案命名空間。如果是標準叢集,則可以是任何命名空間。

  • STATEFULSET_NAME:StatefulSet 物件的名稱。

列出 Pod

如要列出 StatefulSet 建立的 Pod 物件,請執行下列指令:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pods -l app=APP_NAME

在這個指令中,-l 旗標會列出所有標有 APP_NAME 的 Pod 物件。

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行 StatefulSet 物件的叢集 kubeconfig 檔案。

  • NAMESPACE:命名空間。如果是共用叢集,則必須是專案命名空間。如果是標準叢集,則可以是任何命名空間。

  • APP_NAME:由 StatefulSet 物件管理的有狀態應用程式名稱。

取得特定 Pod 資訊

如要取得叢集中特定 Pod 的資訊,請執行下列指令:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pod POD_NAME

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行 Pod 的叢集 kubeconfig 檔案。

  • NAMESPACE:命名空間。如果是共用叢集,則必須是專案命名空間。如果是標準叢集,則可以是任何命名空間。

  • POD_NAME:由 StatefulSet 物件管理的 Pod 名稱。

列出 PVC

如要列出叢集中的 PersistentVolumeClaim (PVC) 物件,請執行下列指令:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pvc

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行 PVC 的叢集 kubeconfig 檔案。

  • NAMESPACE:命名空間。如果是共用叢集,則必須是專案命名空間。如果是標準叢集,則可以是任何命名空間。

取得特定 PVC 資訊

如要取得叢集中特定 PersistentVolumeClaim (PVC) 的資訊,請執行:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pvc PVC_NAME

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行 PVC 的叢集 kubeconfig 檔案。

  • NAMESPACE:命名空間。如果是共用叢集,則必須是專案命名空間。如果是標準叢集,則可以是任何命名空間。

  • PVC_NAME:為 StatefulSet 物件設定的 PVC 名稱。

取得 PV 資訊

如要取得叢集中特定 PersistentVolume (PV) 的資訊,請執行下列指令:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pv PV_NAME

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行 PV 的叢集 kubeconfig 檔案。

  • NAMESPACE:命名空間。如果是共用叢集,則必須是專案命名空間。如果是標準叢集,則可以是任何命名空間。

  • PV_NAME:為 StatefulSet 物件設定的 PV 名稱。

後續步驟