このセクションでは、Anthos Service Mesh の使用時に発生する問題のトラブルシューティングと解決方法について説明します。さらにサポートが必要な場合は、サポートの利用をご覧ください。
トラブルシューティング手順
Anthos Service Mesh のトラブルシューティングを効率的に行うには、次の手順に従います。
- 構成の自動検証ツールを使用する。
- 発生している問題が一般的な問題で、既知の解決策があるかどうか確認する。
- 問題の範囲を絞り込む。
- 関連するログと情報を確認する。
- 診断ログを収集して解決策を探す。
インストール中の kpt
エラー
サポートされていないバージョンの kpt
で install_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
のバージョンが表示される場合は、環境の設定で、オペレーティング システムに必要なバージョンをダウンロードしてください。
自動検証ツールを使用する
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 の一般的な問題と解決策が機能領域別にまとめられています。発生している症状がこれらの問題に一致しているかどうか確認することで、トラブルシューティングの時間を短縮できます。
- 管理対象コントロール プレーンの問題
- オブザーバビリティの問題
- リソースに関する問題
- スケーリングに関する問題
- セキュリティの問題
- トラフィック管理に関する問題
- VM のサポートに関する問題
- Webhook の問題
- サイドカー プロキシに関する問題
ここで問題が解決しない場合は、次のセクションに進んでください。
問題の範囲を絞り込む
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 ログの解釈方法をご覧ください。