問題
啟動時,遙測 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
常見的診斷步驟
- 使用下列指令檢查遙測 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 - 您也可以使用下列指令,檢查遙測 Pod 的
CrashLoopBackOff狀態事件:kubectl -n apigee describe POD_NAME
其中 POD_NAME 是處於
CrashLoopBackOff狀態的 Pod 名稱。輸出內容範例
apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv
- 您也可以使用下列指令檢查 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.cpu 和 metrics.app.resources.limits.cpu 是否都定義了 cpu 值。
解析度
如果指標的 cpu 設定在 overrides.yaml 檔案中遺失,請在 overrides.yaml 檔案中提供這兩個 cpu 值。
在
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
- 使用下列指令套用變更:
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-release和dev-envgroup-release來區分。其中 APIGEE_NAMESPACE 是 Apigee Hybrid 元件的 Kubernetes 命名空間。詳情請參閱「建立 apigee 命名空間」。
其中 ENV_NAME 是您在 UI 中建立環境時使用的名稱。
其中 OVERRIDES_FILE 是升級或安裝時使用的
overrides.yaml檔案。
必須收集診斷資訊
如果按照上述指示操作後問題仍未解決,請收集下列診斷資訊,然後與Google Cloud 客戶服務團隊聯絡:
overrides.yaml檔案。- Apigee Hybrid must-gather 指令碼的輸出內容。