CPU の不足

症状

起動時に、テレメトリー Pod が CrashLoopBackoff 状態を繰り返します。これにより、Pod の再起動時に指標やグラフに定期的なギャップが生じることがあります。データの一部が欠落しているため、分析データとの間に差異が生じることもあります。

エラー メッセージ

kubectl を使用して Pod の状態を表示すると、1 つ以上の指標 Pod が CrashLoopBackoff 状態になっていることがわかります。次のコマンドを参照してください。

kubectl get pods -n APIGEE_NAMESPACE

ここで、APIGEE_NAMESPACE は Apigee ハイブリッド コンポーネントの Kubernetes Namespace です。詳細については、apigee Namespace を作成するをご覧ください。

出力例:

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. 次のコマンドを使用して、CrashLoopBackOff 状態のテレメトリー Pod のイベントを確認することもできます。
    kubectl -n apigee describe POD_NAME

    ここで、POD_NAMECrashLoopBackOff 状態の 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.cpumetrics.app.resources.limits.cpu がありません cpuoverrides.yaml ファイルで指定する必要があります。 Apigee ハイブリッド

原因

cpuoverrides.yaml ファイルで言及されていないため、cpu は未定義の値を取得します。

診断

overrides.yaml ファイルを調べて、metrics.app.resources.requests.cpumetrics.app.resources.limits.cpu の両方に cpu 値が定義されているかどうかを確認します。

解決策

指標の overrides.yaml ファイルに cpu 設定がない場合は、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_NAMEapigee-env チャートのインストールとアップグレードの追跡に使用される一意の名前です。通常は ENV_NAME と同じですが、環境と環境グループの名前が同じ場合は、異なる名前にする必要があります。たとえば、両方の名前が dev の場合は、dev-env-releasedev-envgroup-release を使用して区別します。

    • ここで、APIGEE_NAMESPACE は Apigee ハイブリッド コンポーネントの Kubernetes Namespace です。詳細については、apigee Namespace を作成するをご覧ください。

    • ここで、ENV_NAME は UI で環境を作成したときに使用した名前です。

    • ここで、OVERRIDES_FILE はアップグレードまたはインストール時に使用される overrides.yaml ファイルです。

詳細については、構成プロパティのリファレンスをご覧ください。

診断情報の収集が必要な場合

上記の手順でも問題が解決しない場合は、次の診断情報を収集して Google Cloud カスタマーケアにお問い合わせください。

  1. overrides.yaml ファイル。
  2. Apigee ハイブリッドの Must-Gather スクリプトの出力。