調整容器資源要求和限制

為避免節點壓力過大導致 Pod 突然終止、提升應用程式穩定性,以及確保資源分配符合成本效益,請為 Google Kubernetes Engine (GKE) 叢集中的容器,最佳化 CPU 要求和記憶體要求。垂直自動調度 Pod 資源功能會根據歷來用量和即時需求,自動調整這些容器資源要求和限制。

您可以透過 Google Cloud 控制台手動管理容器資源、使用 VerticalPodAutoscaler 物件分析建議,或透過垂直自動調度 Pod 資源設定自動調度資源。

事前準備

開始之前,請務必先完成下列工作:

  • 啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update 指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。

分析資源要求

垂直 Pod 自動調度器會自動分析容器,並提供建議的資源要求。您可以使用Google Cloud 控制台、Cloud Monitoring 或 Google Cloud CLI 查看這些資源要求。

控制台

如要在 Google Cloud 控制台中查看建議的資源要求,您必須部署至少 24 小時的工作負載。部分建議可能不適用於特定工作負載或與其無關,例如過去 24 小時內建立的工作負載、獨立的 Pod 和以 Java 編寫的應用程式。

  1. 前往 Google Cloud 控制台的「Workloads」(工作負載) 頁面。

    前往「Workloads」(工作負載)

  2. 在工作負載清單中,按一下要調整規模的工作負載名稱。

  3. 依序點選 「動作」>「調度資源」>「編輯資源要求」。

    「分析資源用量資料」部分會顯示垂直 Pod 自動調度資源控制器分析的歷來用量資料,並在「調整資源要求和限制」部分提供建議的資源要求。

Cloud Monitoring

如要在 Cloud Monitoring 中查看建議的資源要求,您必須先部署現有工作負載。

  1. 前往 Google Cloud 控制台的「Metrics Explorer」頁面。

    前往 Metrics Explorer

  2. 按一下「設定」。

  3. 展開「選取指標」選單。

  4. 在「Resource」(資源) 選單中,選取「Kubernetes Scale」(Kubernetes 規模)。

  5. 在「指標類別」選單中,選取「自動調整大小」。

  6. 在「指標」選單中,選取「建議每個副本要求位元組」和「建議每個副本要求核心」。

  7. 按一下「套用」。

gcloud CLI

如要查看建議的資源要求,您必須建立 VerticalPodAutoscaler 物件和 Deployment。

  1. 如果是 Standard 叢集,請為叢集啟用垂直自動調度 Pod 資源功能。如為 Autopilot 叢集,垂直自動調度 Pod 資源功能預設為啟用。

    gcloud container clusters update CLUSTER_NAME --enable-vertical-pod-autoscaling
    

    將 CLUSTER_NAME 替換為叢集名稱。

  2. 將下列資訊清單儲存為 my-rec-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-rec-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: my-rec-deployment
      template:
        metadata:
          labels:
            app: my-rec-deployment
        spec:
          containers:
          - name: my-rec-container
            image: nginx
    

    這個資訊清單描述的 Deployment 沒有 CPU 或記憶體要求。containers.name 的 my-rec-deployment 值指定部署項目中的所有 Pod 都屬於 VerticalPodAutoscaler。

  3. 將資訊清單套用至叢集:

    kubectl create -f my-rec-deployment.yaml
    
  4. 將下列資訊清單儲存為 my-rec-vpa.yaml:

    apiVersion: autoscaling.k8s.io/v1
    kind: VerticalPodAutoscaler
    metadata:
      name: my-rec-vpa
    spec:
      targetRef:
        apiVersion: "apps/v1"
        kind:       Deployment
        name:       my-rec-deployment
      updatePolicy:
        updateMode: "Off"
    

    這個資訊清單說明 VerticalPodAutoscaler。Off 的 updateMode 值表示在建立 Pod 時,垂直 Pod 自動調度器控制器會分析容器的 CPU 和記憶體需求,並將這些建議記錄在資源的 status 欄位中。垂直 Pod 自動調度器控制器不會自動更新執行中容器的資源要求。

  5. 將資訊清單套用至叢集:

    kubectl create -f my-rec-vpa.yaml
    
  6. 過一段時間後,請查看 VerticalPodAutoscaler:

    kubectl get vpa my-rec-vpa --output yaml
    

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

    ...
      recommendation:
        containerRecommendations:
        - containerName: my-rec-container
          lowerBound:
            cpu: 25m
            memory: 262144k
          target:
            cpu: 25m
            memory: 262144k
          upperBound:
            cpu: 7931m
            memory: 8291500k
    ...
    

    這項輸出內容會顯示 CPU 和記憶體要求的建議。

手動設定 Pod 資源要求

您可以使用 Google Cloud 控制台 或 kubectl 手動設定 Pod 資源要求。設定容器資源要求和限制時,請採用下列最佳做法:

  • 記憶體:將要求和限制設為相同的記憶體量。
  • CPU:根據您自己的 SLO,為要求指定確保正確運作所需的最低 CPU。設定無上限的 CPU 限制。

控制台

  1. 前往 Google Cloud 控制台的「Workloads」(工作負載) 頁面。

    前往「Workloads」(工作負載)

  2. 在工作負載清單中,按一下要調整規模的工作負載名稱。

  3. 依序點選 「動作」>「調度資源」>「編輯資源要求」。

    1. 「調整資源要求和限制」部分會顯示每個容器目前的 CPU 和記憶體要求,以及建議的 CPU 和記憶體要求。
  4. 按一下「套用最新建議」,即可查看每個容器的建議要求。

  5. 按一下 [儲存變更]。

  6. 按一下「確認」。

kubectl

以最少的服務中斷時間,垂直擴展工作負載

從 Kubernetes 1.33 版開始,您可以使用 kubectl patch 指令更新指派給容器的資源,垂直擴展工作負載,不必重新建立 Pod。如要瞭解詳情 (包括限制),請參閱 Kubernetes 說明文件,瞭解如何調整 CPU 和記憶體資源大小。

如要使用 kubectl patch 指令,請在 --patch 旗標下指定更新後的資源要求。舉例來說,如要將 my-app 擴充至 800 mCPU,請執行下列指令:

kubectl patch pod my-app --subresource resize --patch \
  '{"spec":{"containers":[{"name":"pause", "resources":{"requests":{"cpu":"800m"}, "limits":{"cpu":"800m"}}}]}}'

垂直調度工作負載資源

如要為 Pod 設定資源要求,請在 Deployment 資訊清單中設定 requests.cpu 和 memory.cpu 值。在本範例中,您會使用建議的資源要求,手動修改在「分析資源要求」中建立的 Deployment。

  1. 將下列範例資訊清單儲存為 my-adjusted-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-rec-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: my-rec-deployment
      template:
        metadata:
          labels:
            app: my-rec-deployment
        spec:
          containers:
          - name: my-rec-container
            image: nginx
            resources:
              requests:
                cpu: 25m
                memory: 256Mi
    

    這個資訊清單描述的 Deployment 有兩個 Pod。每個 Pod 都有一個容器,要求 25 毫 CPU 和 256 MiB 的記憶體。

  2. 將資訊清單套用至叢集:

    kubectl apply -f my-adjusted-deployment.yaml
    

自動設定 Pod 資源要求

垂直自動調度 Pod 資源功能會在 updateMode 為 Auto 時,使用 VerticalPodAutoscaler 物件自動設定 Pod 的資源要求。您可以使用 gcloud CLI 或Google Cloud 控制台設定 VerticalPodAutoscaler。

控制台

如要自動設定資源要求,您必須啟用叢集的垂直自動調度 Pod 資源功能。Autopilot 叢集預設會啟用垂直自動調度 Pod 資源功能。

啟用垂直自動調度 Pod 資源功能

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在叢集清單中,按一下您要修改的叢集名稱。

  3. 點按「Details」(詳細資料) 分頁標籤。

  4. 在「Automation」(自動化) 區段中,按一下「Vertical Pod Autoscaling」(垂直自動調度 Pod 資源) 選項的「Edit」(編輯) 。

  5. 勾選「Enable Vertical Pod Autoscaling」(啟用垂直自動調度 Pod 資源功能) 核取方塊。

  6. 按一下 [儲存變更]。

設定垂直自動調度 Pod 資源功能

  1. 前往 Google Cloud 控制台的「Workloads」(工作負載) 頁面。

    前往「Workloads」(工作負載)

  2. 在工作負載清單中,按一下要設定垂直自動調度 Pod 資源的 Deployment 名稱。

  3. 依序點選「動作」>「編輯自動調度資源」。

  4. 在「垂直自動調度 Pod 資源」部分下方,按一下「選取並設定」。

  5. 在「更新模式」下方,選擇自動調度資源模式:

    • 自動模式:垂直自動調度 Pod 資源功能會在 Pod 的生命週期內更新 CPU 和記憶體要求。
    • 初始模式:垂直自動調度 Pod 資源功能只會在建立 Pod 時指派資源要求,之後不會變更。
  6. (選用) 設定容器政策。這個選項可確保建議值永遠不會高於或低於指定的資源要求。

    1. 按一下「Add Policy」。
    2. 選取要新增政策的容器,或選擇要套用至沒有政策的所有容器的預設政策。
    3. 選取「資源調度模式」的「自動」。
    4. 在「受控資源」中,選取要自動調整容器規模的資源。
    5. 按一下「新增規則」,為容器的資源要求設定一或多個上下限範圍:
      • 允許的記憶體容量下限:容器一律應有的記憶體容量下限,以 MiB 為單位。
      • CPU 數量下限:容器應一律擁有的 CPU 數量下限,以 mCPU 為單位。
      • 記憶體容量上限:容器應一律擁有的記憶體容量上限,以 MiB 為單位。
      • CPU 數量上限:容器應一律擁有的 CPU 數量上限,以 mCPU 為單位。
  7. 按一下「提交」。

gcloud

如要自動設定資源要求,您必須使用已啟用垂直自動調度 Pod 資源功能的叢集。Autopilot 叢集預設會啟用這項功能。

  1. 如果是標準版叢集,請為叢集啟用垂直自動調度 Pod 資源功能:

    gcloud container clusters update CLUSTER_NAME --enable-vertical-pod-autoscaling
    

    將 CLUSTER_NAME 替換為叢集名稱。

  2. 將下列資訊清單儲存為 my-auto-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-auto-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: my-auto-deployment
      template:
        metadata:
          labels:
            app: my-auto-deployment
        spec:
          containers:
          - name: my-container
            image: registry.k8s.io/ubuntu-slim:0.14
            resources:
              requests:
                cpu: 100m
                memory: 50Mi
            command: ["/bin/sh"]
            args: ["-c", "while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done"]
    

    這個資訊清單描述的 Deployment 有兩個 Pod。每個 Pod 都有一個容器,要求 100 毫 CPU 和 50 MiB 的記憶體。

    如果您建立資訊清單來比對自己專案中的特定詳細資料,請務必不要在垂直 Pod 自動配置器欄位中加入私密資料。

  3. 將資訊清單套用至叢集:

    kubectl create -f my-auto-deployment.yaml
    
  4. (選用) 設定 resizePolicy,進行就地更新。

    如果您打算使用 InPlaceOrRecreate 模式,可以在 Deployment 資訊清單中明確定義容器應如何處理資源變更。

    將 resizePolicy 欄位新增至容器規格:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-auto-deployment
    spec:
      ...
      template:
        ...
        spec:
          containers:
          - name: my-container
            image: registry.k8s.io/ubuntu-slim:0.14
            resizePolicy:
            - resourceName: cpu
              restartPolicy: NotRequired
            - resourceName: memory
              restartPolicy: RestartContainer
            resources:
              requests:
                cpu: 100m
                memory: 50Mi
            ...
    

    在本例中,CPU 大小調整作業可順利完成,不需重新啟動容器,但記憶體大小調整作業則需要重新啟動容器。

  5. 列出執行中的 Pod:

    kubectl get pods
    

    輸出內容會顯示 my-deployment 中的 Pod 名稱:

    NAME                            READY     STATUS             RESTARTS   AGE
    my-auto-deployment-cbcdd49fb-d6bf9   1/1       Running            0          8s
    my-auto-deployment-cbcdd49fb-th288   1/1       Running            0          8s
    
  6. 將下列資訊清單儲存為 my-vpa.yaml:

    apiVersion: autoscaling.k8s.io/v1
    kind: VerticalPodAutoscaler
    metadata:
      name: my-vpa
    spec:
      targetRef:
        apiVersion: "apps/v1"
        kind:       Deployment
        name:       my-auto-deployment
      updatePolicy:
        updateMode: "Recreate"
    

    這個資訊清單說明具有下列屬性的 VerticalPodAutoscaler:

    • targetRef.name:指定由名為 my-deployment 的 Deployment 控制的任何 Pod 都屬於這個 VerticalPodAutoscaler。
    • updateMode: "Recreate":指定垂直 Pod 自動調度控制器可以刪除 Pod、調整 CPU 和記憶體要求,然後啟動新的 Pod。如未指定模式,系統會預設採用這個模式 (也稱為 Auto 模式)。 您也可以將更新模式變更為下列其中一個值:
      • updateMode: "Initial":垂直自動調度 Pod 資源只會在建立 Pod 時指派資源要求。
      • updateMode: "InPlaceOrRecreate" (預先發布版):垂直自動調度 Pod 資源會嘗試更新資源,而不重新建立 Pod,必要時才會重新建立。如果工作負載已設定 resizePolicy: NotRequired,效果最佳。
  7. 將資訊清單套用至叢集:

    kubectl create -f my-vpa.yaml
    
  8. 請稍候幾分鐘,然後再次查看執行中的 Pod:

    kubectl get pods
    

    輸出內容顯示 Pod 名稱已變更:

    NAME                                 READY     STATUS             RESTARTS   AGE
    my-auto-deployment-89dc45f48-5bzqp   1/1       Running            0          8s
    my-auto-deployment-89dc45f48-scm66   1/1       Running            0          8s
    

    如果 Pod 名稱沒有變更,請稍候片刻,然後再次查看執行中的 Pod。

設定資源的最小值和最大值

您可以為垂直自動調度 Pod 資源產生的建議設定上下限。

主控台

  1. 前往 Google Cloud 控制台的「Workloads」(工作負載) 頁面。

    前往「Workloads」(工作負載)

  2. 在工作負載清單中,按一下要設定的部署作業名稱。

  3. 依序點選 「動作」>「自動調度資源」>「垂直自動調度 Pod 資源」。

  4. 按一下「新增政策」。

  5. 選取要設定的容器。

  6. 按一下 [新增規則]。

  7. 輸入 CPU 和記憶體的「允許下限」和「允許上限」值。

  8. 按一下「完成」。

  9. 按一下 [儲存]。

gcloud

如要設定資源限制的下限和上限,請在 VerticalPodAutoscaler 資訊清單中加入 resourcePolicy 區段。

  1. 將下列資訊清單儲存為 my-constrained-vpa.yaml:

    apiVersion: autoscaling.k8s.io/v1
    kind: VerticalPodAutoscaler
    metadata:
      name: my-constrained-vpa
    spec:
      targetRef:
        apiVersion: "apps/v1"
        kind:       Deployment
        name:       my-auto-deployment
      updatePolicy:
        updateMode: "Auto"
      resourcePolicy:
        containerPolicies:
        - containerName: my-container
          minAllowed:
            cpu: 100m
            memory: 50Mi
          maxAllowed:
            cpu: 1000m
            memory: 1024Mi
    

    這項設定可確保 my-container 的建議值不會低於 100 mCPU/50 MiB,也不會高於 1000 mCPU/1024 MiB。

  2. 將資訊清單套用至叢集:

    kubectl apply -f my-constrained-vpa.yaml
    

查看垂直 Pod 自動調度器相關資訊

如要查看垂直 Pod 自動調度器詳細資料,請按照下列步驟操作:

  1. 取得其中一個執行中 Pod 的詳細資訊:

    kubectl get pod POD_NAME --output yaml
    

    將 POD_NAME 替換為您在上一個步驟中擷取的其中一個 Pod 名稱。

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

    apiVersion: v1
    kind: Pod
    metadata:
      annotations:
        vpaUpdates: 'Pod resources updated by my-vpa: container 0: cpu capped to node capacity, memory capped to node capacity, cpu request, memory request'
    ...
    spec:
      containers:
      ...
        resources:
          requests:
            cpu: 510m
            memory: 262144k
        ...
    

    這項輸出內容顯示垂直 Pod 自動調度器控制器的記憶體要求為 262144k,CPU 要求為 510 milliCPU。

  2. 取得「VerticalPodAutoscaler」的詳細資訊:

    kubectl get vpa my-vpa --output yaml
    

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

    ...
      recommendation:
        containerRecommendations:
        - containerName: my-container
          lowerBound:
            cpu: 536m
            memory: 262144k
          target:
            cpu: 587m
            memory: 262144k
          upperBound:
            cpu: 27854m
            memory: "545693548"
    

    這項輸出內容會顯示 CPU 和記憶體要求的建議,並包含下列屬性:

    • target:指定容器應要求 587 毫 CPU 和 262,144 KB 的記憶體,才能以最佳狀態執行。
    • lowerBound 和 upperBound:垂直自動調度 Pod 資源功能會使用這些屬性,判斷是否要刪除 Pod 並換成新的 Pod。如果 Pod 的要求低於下限或高於上限,垂直 Pod 自動配置器會刪除該 Pod,並以符合目標屬性的 Pod 取代。
  3. 檢查是否有調整大小的事件。如果您使用 InPlaceOrRecreate 模式,可以檢查 Pod 的事件,確認是否已完成就地更新:

    kubectl get events --field-selector involvedObject.kind=Pod
    

    尋找 ResizeCompleted 事件,這表示就地更新成功:

    Reason            Message
    ------            -------
    ResizeCompleted   Pod resize completed: {"containers":[...]}
    

停用特定容器

您可以使用 gcloud CLI 或 Google Cloud 控制台,選擇不對特定容器進行垂直自動調度 Pod 資源。

控制台

如要停用特定容器的垂直自動調度 Pod 資源功能,您必須啟用垂直自動調度 Pod 資源功能的叢集。Autopilot 叢集預設會啟用垂直自動調度 Pod 資源功能。

啟用垂直自動調度 Pod 資源功能

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在叢集清單中,按一下您要修改的叢集名稱。

  3. 點按「Details」(詳細資料) 分頁標籤。

  4. 在「Automation」(自動化) 區段中,按一下「Vertical Pod Autoscaling」(垂直自動調度 Pod 資源) 選項的「Edit」(編輯) 。

  5. 勾選「Enable Vertical Pod Autoscaling」(啟用垂直自動調度 Pod 資源功能) 核取方塊。

  6. 按一下 [儲存變更]。

設定垂直自動調度 Pod 資源功能

  1. 前往 Google Cloud 控制台的「Workloads」(工作負載) 頁面。

    前往「Workloads」(工作負載)

  2. 在工作負載清單中,按一下要設定垂直自動調度 Pod 資源的 Deployment 名稱。

  3. 依序點選 「動作」>「編輯自動調度資源」。

  4. 在「垂直自動調度 Pod 資源」部分下方,按一下「選取並設定」。

  5. 在「更新模式」下方,選擇自動調度資源模式:

    • 自動模式:垂直自動調度 Pod 資源功能會在 Pod 的生命週期內更新 CPU 和記憶體要求。
    • 初始模式:垂直自動調度 Pod 資源功能只會在建立 Pod 時指派資源要求,之後不會變更。
  6. 按一下「新增政策」。

  7. 選取要停用的容器。

  8. 在「縮放模式」部分,選取「關閉」。

  9. 按一下「提交」。

gcloud

如要停用特定容器的垂直自動調度 Pod 資源功能,請按照下列步驟操作:

  1. 將下列資訊清單儲存為 my-opt-vpa.yaml:

    apiVersion: autoscaling.k8s.io/v1
    kind: VerticalPodAutoscaler
    metadata:
      name: my-opt-vpa
    spec:
      targetRef:
        apiVersion: "apps/v1"
        kind:       Deployment
        name:       my-opt-deployment
      updatePolicy:
        updateMode: "Recreate"
      resourcePolicy:
        containerPolicies:
        - containerName: my-opt-sidecar
          mode: "Off"
    

    這個資訊清單說明 VerticalPodAutoscaler。mode: "Off" 值會關閉容器 my-opt-sidecar 的建議。

  2. 將資訊清單套用至叢集:

    kubectl apply -f my-opt-vpa.yaml
    
  3. 將下列資訊清單儲存為 my-opt-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-opt-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-opt-deployment
      template:
        metadata:
          labels:
            app: my-opt-deployment
        spec:
          containers:
          - name: my-opt-container
            image: nginx
          - name: my-opt-sidecar
            image: busybox
            command: ["sh","-c","while true; do echo Doing sidecar stuff!; sleep 60; done"]
    
  4. 將資訊清單套用至叢集:

    kubectl apply -f my-opt-deployment.yaml
    
  5. 過一段時間後,查看垂直 Pod 自動配置器:

    kubectl get vpa my-opt-vpa --output yaml
    

    輸出結果會顯示建議的 CPU 和記憶體要求:

    ...
      recommendation:
        containerRecommendations:
        - containerName: my-opt-container
    ...
    

    在這個輸出內容中,只有一個容器的建議。找不到適合「my-opt-sidecar」的建議。

    垂直 Pod 自動調度器絕不會更新已停用容器的資源。 稍候幾分鐘後,Pod 會重新建立,但只有一個容器更新了資源要求。

找出沒有資源要求或限制的工作負載

建議您找出未設定資源要求和限制的工作負載,因為 GKE 建議為所有工作負載設定資源要求和限制,這是最佳做法,可避免節點資源不足時 Pod 突然終止,並提高費用分配準確率。定義 BestEffort Pod 或具有 Burstable 記憶體的 Pod 時,節點發生記憶體壓力時可能會導致可靠性問題。設定容器資源要求和限制時,請採用下列最佳做法:

  • 記憶體:將要求和限制設為相同的記憶體量。
  • CPU:根據您自己的 SLO,為要求指定確保正確運作所需的最低 CPU。設定無上限的 CPU 限制。

GKE 會針對未設定資源要求和限制的工作負載,產生深入分析資訊和建議。

下表說明 GKE 偵測到的資源設定情境,以及各情境的條件。

洞察子類型 缺少設定的情況 詳細資料
REQUEST_OR_LIMIT_NOT_SET 未設定記憶體要求和限制。 (MEMORY_REQUEST_AND_LIMIT_NOT_SET) Pod 正在運作,容器未設有記憶體要求與限制。GKE 無法限制記憶體用量,如果節點受到記憶體壓力,可能會突然終止這類 Pod,進而導致可靠性問題。
REQUEST_OR_LIMIT_NOT_SET 未設定記憶體限制。 (MEMORY_LIMIT_NOT_SET) Pod 正在運作,容器未設有記憶體限制。GKE 無法限制記憶體用量。如果節點受到記憶體壓力,且 Pod 的記憶體用量超過要求,GKE 可能會突然終止這類 Pod,這可能會產生可靠性問題。您應為要求和限制設定相同大小的記憶體,以免 Pod 使用的記憶體超出要求。
REQUEST_OR_LIMIT_NOT_SET 未設定 CPU 要求和限制。 (CPU_REQUEST_AND_LIMIT_NOT_SET) Pod 正在運作,容器未設有 CPU 要求與限制。 這種情況下,節點資源較有可能耗盡。節點的 CPU 使用率接近上限時,Pod 較有可能受到限制,並有可能產生效能問題。

如要進一步瞭解這些洞察資料,請按照操作說明查看洞察資料和最佳化建議。

手動檢查資源要求和限制

您可能需要手動檢查缺少哪些資源要求和限制,並為特定工作負載指定這些項目,以便按照建議更新設定。

如要查看或更新特定工作負載的資源要求和限制設定,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Workloads」(工作負載) 頁面。

    前往「Workloads」(工作負載)

  2. 在工作負載清單中,按一下要檢查的工作負載名稱。

  3. 依序點選 「動作」>「調度資源」>「編輯資源要求」。

    1. 「調整資源要求和限制」部分會顯示每個容器目前的 CPU 和記憶體要求。

後續步驟