順を追った Anthos Service Mesh のトラブルシューティング手順

このセクションでは、Anthos Service Mesh の使用時に発生する問題のトラブルシューティングと解決方法について説明します。さらにサポートが必要な場合は、サポートの利用をご覧ください。

トラブルシューティング手順

Anthos Service Mesh のトラブルシューティングを効率的に行うには、次の手順に従います。

  1. 構成の自動検証ツールを使用する。
  2. 発生している問題が一般的な問題で、既知の解決策があるかどうか確認する。
  3. 問題の範囲を絞り込む。
  4. 関連するログと情報を確認する。
  5. 診断ログを収集して解決策を探す。

インストール中の kpt エラー

サポートされていないバージョンの kptinstall_asm を使用して Anthos Service Mesh をインストールすると、install_asm によって次のエラー メッセージが出力されます。

    2021-07-14T15:54:58.380312 install_asm_1_9_3: Downloading ASM..
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 41.7M  100 41.7M    0     0  31.1M      0  0:00:01  0:00:01 --:--:-- 31.1M
    2021-07-14T15:54:59.777425 install_asm_1_9_3: Downloading ASM kpt package...
    2021-07-14T15:54:59.805267 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:54:59.832100 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:54:59.907493 install_asm_1_9_3: [WARNING]: Failed, retrying...(1 of 3)
    2021-07-14T15:55:01.936275 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:01.963543 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:02.043638 install_asm_1_9_3: [WARNING]: Failed, retrying...(2 of 3)
    2021-07-14T15:55:04.074541 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:04.101990 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:04.176750 install_asm_1_9_3: [WARNING]: Failed, retrying...(3 of 3)
    

これらのエラーが表示された場合は、最新バージョンの install_asm をダウンロードしてください。install_asm スクリプトは、次のバージョン以上のいずれかにする必要があります。

  • バージョン 1.8 - 1.8.6-asm.5+config1 の場合
  • バージョン 1.9 - 1.9.6-asm.2+config1 の場合
  • バージョン 1.10 - 1.10.2-asm.3+config1 の場合

anthos-service-mesh-package をダウンロードして istioctl install を使用して Anthos Service Mesh をインストールした場合、kpt のサポートされていないバージョンがあると、次のエラー メッセージが表示されます。

    Package "asm":
    Fetching https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages@release-1.10-asm
    From https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages
     * branch            release-1.10-asm -> FETCH_HEAD
    Error: Kptfile at "https:/github.com/GoogleCloudPlatform/anthos-service-mesh-packages/asm@release-1.10-asm" has an old version ("v1alpha1") of the Kptfile schema.
    Please update the package to the latest format by following https://kpt.dev/installation/migration.
    

Anthos Service Mesh のインストールには、1.x より前のバージョンの kpt が必要です。シェル セッションで kpt バージョン 0.39.2 を使用するように設定する必要があります。次のコマンドを実行して kpt のバージョンを取得できます。

   kpt version

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

    0.39.2

バージョン 1.0 より後の kpt のバージョンが表示される場合は、必要な kpt バージョンをダウンロードするを参照して、必要なバージョンをダウンロードします。

自動検証ツールを使用する

Anthos Service Mesh には、診断と構成検証を自動的に行うツールが含まれています。これらのツールは問題の解決や回避に役立ちます。以降のセクションでは、これらのツールの使用方法について説明します。

istioctl analyze

istioctl analyze 診断ツールでは、一般的な構成の問題を検出できます。こちらの手順istioctl をインストールします。

istioctl analyze はクラスタ構成を読み取ります。問題が見つかると、情報メッセージを表示して解決策を提示します。このツールは、ライブクラスタだけでなく、ローカル構成ファイルのセットにも実行できます。この両方に実行し、クラスタに変更を適用する前に問題を見つけることもできます。詳細については、istioctl analyze による構成の診断をご覧ください。istioctl analyze で検出されるエラーの詳細については、構成分析メッセージをご覧ください。

ライブクラスタを分析する

ライブクラスタを分析するには、次のコマンドを実行します。

istioctl analyze -A

istioctl analyze で構成の問題が検出されると、問題解決に役立つ情報を示すメッセージが表示されます。たとえば、名前空間に正しいラベルが設定されていないために Istio サイドカー インジェクションを有効にできなかった場合、次のようなメッセージが表示されます。

Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection.
Run 'kubectl label namespace default istio-injection=enabled' to enable it,
or 'kubectl label namespace default istio-injection=disabled'
to explicitly mark it as not needing injection

問題が解決しない場合は、次のセクションを参照して既知の問題かどうか確認してください。

よくある問題とその解決策を確認する

Anthos Service Mesh の一般的な問題と解決策が機能領域別にまとめられています。発生している症状がこれらの問題に一致しているかどうか確認することで、トラブルシューティングの時間を短縮できます。

ここで問題が解決しない場合は、次のセクションに進んでください。

問題の範囲を絞り込む

Anthos Service Mesh は、相互に連携する複数のテクノロジーで構成されます。つまり、特定の種類の問題が特定の機能領域やコンポーネントに関連していることを意味します。これらのコンポーネントは問題の解決に役立つログを生成します。提供された情報を手動で分析する前に、次の質問に答えて問題の範囲を絞り込みます。

  • この問題は、コントロール プレーンまたはデータプレーン(istiod や Envoy プロキシなど)で発生していますか?
  • どの機能領域(ネットワーク、テレメトリー、セキュリティなど)で問題が発生していますか?
  • トラフィックの損失が発生しているのはサービス メッシュ全体ですか。それとも特定のデプロイメントですか?
  • サービス メッシュでトラフィックをスケーリングできないため、問題が発生または悪化していますか?
  • この問題が原因で遅延やその他のパフォーマンスの問題が発生していますか?
  • 問題をオンデマンドで再現できますか?
  • Istio や GKE など、最近の構成変更後に問題が発生しましたか?
  • サービス メッシュ内でトラフィックが増加または急増していますか?
  • このクラスタで、重要な機能が有効になっていますか。あるいは一般的でないデプロイがありますか?
  • CPU またはメモリの使用率が高くなっていますか。その場合、想定される規模はどの程度ですか?
  • 考慮すべき割り当て制限はありますか?

コントロール プレーンのステータスを確認する

次のコマンドを使用すると、Anthos Service Mesh のコントロール プレーンのステータスを確認できます。

  • kubectl get pods -n istio-system
  • kubectl describe -n istio-system
  • istio-system 内のすべての Pod の場合: kubectl logs -n istio-system -l istio --all-containers
  • istioctl version
  • istioctl proxy-status
  • kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
  • kubectl top pods -n istio-system

デプロイの規模を確認するには、次のコマンドを使用します。

  • kubectl get nodes
  • kubectl get services --all-namespaces
  • kubectl get pods --all-namespaces

関連するログと情報の確認

問題の範囲を絞り込むと、特定のログや情報をより効率的に見つけることができます。Anthos Service Mesh によって生成されるログとそのログに含まれる情報の見方については、Anthos Service Mesh ログの解釈方法をご覧ください。