Arm ワークロードのトラブルシューティング


このページでは、Google Kubernetes Engine(GKE)Autopilot クラスタまたは Standard クラスタにデプロイされた Arm ワークロードの問題を解決する方法について説明します。

Arm ノードの Pod がクラッシュする

Arm ノードに Pod をデプロイするときに、コンテナ イメージが Arm アーキテクチャ用にビルドされていないと、次の問題が発生します。

この問題を特定するには、次の手順を行います。

  1. Pod のステータスを取得します。

    kubectl get pods
    
  2. クラッシュした Pod のログを取得します。

    kubectl logs POD_NAME
    

    POD_NAME は、クラッシュした Pod の名前に置き換えます。

    Pod ログのエラー メッセージは、次のようになります。

    exec ./hello-app: exec format error
    

この問題を解決するには、コンテナ イメージが Arm アーキテクチャをサポートしていることを確認します。マルチ アーキテクチャ イメージのビルドをおすすめします。

Pod がスケールアップをトリガーしない

対象: Autopilot

サポートされていない GKE バージョンまたはサポートされていない Google Cloud リージョンに Arm ワークロードをデプロイしようとすると、Autopilot クラスタで次の問題が発生します。

問題を特定するには、クラスタのイベントログを取得します。

kubectl get events -w

出力は次のようになります。

117s        Normal    NotTriggerScaleUp   pod/hello-app2-78fc858558-pg4hz   pod didn't trigger scale-up (it wouldn't fit if a new node is added): 2 node(s) didn't match Pod's node affinity/selector

この問題を解決するには、Autopilot クラスタが GKE バージョン 1.24.1-gke.1400 以降を実行しており、Google Cloud リージョンが Arm ノードをサポートしていることを確認してください。

Pod が Pending 状態から動かなくなる

対象: Autopilot

Arm アーキテクチャで Autopilot Pod をデプロイしようとしたときに、Google Cloud プロジェクトで割り当てが不足していると、次の問題が発生します。

問題を特定するには、クラスタのイベントログを取得します。

kubectl get events -w

出力は次のようになります。

29m         Warning   FailedScaleUp       pod/hello-app-7b86c88cb8-8vt2k   Node scale up in zones asia-southeast1-b associated with this pod failed: GCE quota exceeded. Pod is at risk of not being scheduled.

このイベントは、Pod をデプロイしてもログにすぐに現われない場合があります。

この問題を解決するには、割り当ての増加をリクエストしてみてください。