症状
启动时,遥测 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 - 您还可以使用以下命令检查处于
CrashLoopBackOff状态的遥测 pod 的事件: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 |
必须在 overrides.yaml 文件中指定 cpu。 |
Apigee Hybrid |
原因
overrides.yaml 文件中未提及 cpu,因此 cpu 的值为未定义。
诊断
检查您的 overrides.yaml 文件,看看是否为 metrics.app.resources.requests.cpu 和 metrics.app.resources.limits.cpu 定义了两个 cpu 值。
解决方法
如果 overrides.yaml 文件中缺少指标的 cpu 设置,请在 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 是您在界面中创建环境时使用的名称。
其中,OVERRIDES_FILE 是在升级或安装过程中使用的
overrides.yaml文件。
必须收集的诊断信息
如果按照上述说明操作后问题仍然存在,请收集以下诊断信息,然后与 Google Cloud Customer Care 联系:
overrides.yaml文件。- Apigee Hybrid must-gather 脚本的输出。