CPU 不足

問題

啟動時,遙測 Pod 會進入和退出 CrashLoopBackoff 狀態。這可能會導致指標或圖表出現週期性間隙,因為 Pod 會重新啟動。此外,由於缺少部分資料,您也可能會發現與數據分析資料有差異。

錯誤訊息

使用 kubectl 查看 Pod 狀態時,您會看到一或多個指標 Pod 處於 CrashLoopBackoff 狀態。請參閱下列指令:

kubectl get pods -n APIGEE_NAMESPACE

其中 APIGEE_NAMESPACE 是 Apigee Hybrid 元件的 Kubernetes 命名空間。詳情請參閱「建立 apigee 命名空間」。

輸出內容範例

NAME                                                      READY   STATUS             RESTARTS   AGE
apigee-metrics-default-telemetry-proxy-1104-hvwoo-zlmlw   0/1     CrashLoopBackoff   10         10m
apigee-metrics-adapter-apigee-telemetry-1104-7fyff-tts65  0/1     CrashLoopBackoff   10         10m
apigee-metrics-default-telemetry-proxy-1104-hvwoo-zlmlw   0/1     FailedScheduling   0          12m

常見的診斷步驟

  1. 使用下列指令檢查遙測 Pod 的事件,瞭解是否有問題:
    kubectl -n apigee get event 

    輸出內容範例

    LAST SEEN   TYPE      REASON           OBJECT                                                           MESSAGE
    53m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251940 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-292519fkt7j
    53m         Normal    Completed        job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251940 Job completed
    43m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251950 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-292519l87m8
    43m         Normal    Completed        job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251950 Job completed
    33m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251960 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-29251962ncc
        
  2. 您也可以使用下列指令,檢查遙測 Pod 的 CrashLoopBackOff 狀態事件:
    kubectl -n apigee describe POD_NAME

    其中 POD_NAME 是處於 CrashLoopBackOff 狀態的 Pod 名稱。

    輸出內容範例

     apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv    
  3. 您也可以使用下列指令檢查 Pod 的 cpu 狀態:
    kubectl -n apigee get hpa | grep unknown

    輸出內容範例

    apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv   ReplicaSet/apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv   /80%                                2         10        2          8h
     

可能原因

原因 說明 適用於以下情況的疑難排解操作說明
缺少「metrics.app.resources.requests.cpu」和「metrics.app.resources.limits.cpu cpu 必須在 overrides.yaml 檔案中指定。 Apigee Hybrid

原因

cpu 未在 overrides.yaml 檔案中提及,因此 cpu 會取得未定義的值。

診斷

檢查 overrides.yaml 檔案,確認 metrics.app.resources.requests.cpumetrics.app.resources.limits.cpu 是否都定義了 cpu 值。

解析度

如果指標的 cpu 設定在 overrides.yaml 檔案中遺失,請在 overrides.yaml 檔案中提供這兩個 cpu 值。

  1. overrides.yaml 檔案的 metrics 區段下方新增下列設定:

    metrics:
      app: # The apigee-prometheus-app container in the "app" pod
        resources:
          requests:
            memory: 512Mi # Default value: 512Mi
            cpu: 500m # Default value: 500m
          limits:
            memory: 2Gi # default: 1Gi
            cpu: 500m # Default value: 500m
      

  2. 使用下列指令套用變更:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    • 其中 ENV_RELEASE_NAME 是用於追蹤 apigee-env 圖表安裝和升級作業的專屬名稱。通常與 ENV_NAME 相同,但如果環境與環境群組的名稱相同,則必須不同。舉例來說,如果兩者都命名為 dev,您可以使用 dev-env-releasedev-envgroup-release 來區分。

    • 其中 APIGEE_NAMESPACE 是 Apigee Hybrid 元件的 Kubernetes 命名空間。詳情請參閱「建立 apigee 命名空間」。

    • 其中 ENV_NAME 是您在 UI 中建立環境時使用的名稱。

    • 其中 OVERRIDES_FILE 是升級或安裝時使用的 overrides.yaml 檔案。

詳情請參閱「設定屬性參考資料」。

必須收集診斷資訊

如果按照上述指示操作後問題仍未解決,請收集下列診斷資訊,然後與Google Cloud 客戶服務團隊聯絡:

  1. overrides.yaml 檔案。
  2. Apigee Hybrid must-gather 指令碼的輸出內容。