次の方法で共有


Istio サービス メッシュ アドオンのマイナー リビジョン アップグレードのトラブルシューティング

この記事では、Microsoft Azure Kubernetes Service (AKS) の Istio サービス メッシュ アドオンのマイナー リビジョン アップグレードとロールバック プロセスのトラブルシューティング シナリオと制限について説明します。

注:

Istio では、"リビジョン" という用語を使用してカナリア アップグレード プロセスを実装し、バージョンを区別します。 各リビジョン指定 ( x-y と書き込まれます) は、major.minor バージョンの指定 (x) に対応します。y)。 コントロール プレーンのリビジョンは制御できますが、リビジョン バンド内の特定のパッチ バージョンを制御することはできません。

前提条件

トラブルシューティング マトリックス

次の表に、さまざまな問題と、それらの問題に対するさまざまなシナリオと解決策を示します。

シナリオ 問題 ソリューション
データ プレーンワークロードはメッシュから削除されます。 アップグレードを完了またはロールバックする前に、データ プレーンとコントロール プレーンのリビジョンが対応していませんでした。

次の手順を実行します。

  1. アップグレードの完了後またはロールバック後に存在すると予想されるリビジョンを指定して、ワークロードを含む名前空間にラベルを付け直します。 これを行うには、 kubectl label コマンドを実行します。

    kubectl label namespace default istio.io/rev=asm-x-y --overwrite
  2. 対応するワークロードデプロイを再起動して、正しいリビジョンのサイドカーの再挿入をトリガーします。 これを行うには、 kubectl ロールアウトの再起動 コマンドを実行します。

    kubectl rollout restart deployment <deployment name>
  3. サイドカー イメージが存在することを確認します。 これを行うには、 kubectl get コマンドを実行します。

    kubectl get pods --namespace <namespace> --output yaml | grep mcr.microsoft.com/oss/istio/proxyv2:
コントロール プレーン ポッドは保留中の状態です。 ポッドに容量がありません。 kubectl describe コマンドを実行して、ポッドの状態を確認します。 容量が問題の場合は、クラスターをスケールアップして別のノードを追加できます。 詳細については、「Azure Kubernetes Service (AKS) クラスター内のノード数を手動でスケーリングする」を参照してください。
az aks mesh get-upgrades コマンドは、使用可能なアップグレードを返しません。 最新の Istio リビジョンは、現在の AKS クラスター バージョンと互換性がない可能性があります。 az aks mesh get-revisions コマンドを使用して、新しい Istio リビジョンが存在するかどうかを検出できます。 出力には、Istio リビジョンごとに互換性のあるクラスター バージョンの一覧が含まれています。 そのため、クラスターのアップグレードが必要かどうかを判断できます。

注:

意図しない動作や機能の破損を回避し、セキュリティの脆弱性の更新プログラムを確実に受け取るように、サポートされている最新の AKS バージョン と Istio アドオンリビジョンにアップグレードすることを強くお勧めします。 アドオンリビジョンは、特定の AKS クラスターでサポートされている Kubernetes バージョンの範囲内にある必要もあります。 Istio アップグレードに関する記事の「マイナー リビジョン アップグレード」セクションで強調表示されているように、 コマンドと az aks mesh get-upgrades コマンドを実行az aks mesh get-revisionsして、使用可能なアドオンのリビジョン、アップグレード、互換性情報について学習できます。

制限

  • 古いリビジョン (カナリア ロールバック プロセスの外部) へのダウングレードは許可されません。

  • 1 つのリビジョンから非連続リビジョンへのスキップは、AKS が現在のリビジョンと次のアップグレード リビジョンの両方をサポートしなくなった場合にのみ許可されます。 この時点で使用できるアップグレードは、サポートされている最も低いリビジョンだけです。

  • Istio ラベルでは、Istio sidecar.istio.io/inject アドオンのサイドカー インジェクションは有効になりません。 カナリア アップグレード中に名前空間に istio.io/rev ラベルを付け直し、ラベルを付け直す場合は、 ラベルを使用する必要があります。

  • ラベル付けは、デプロイごとのレベルではなく名前空間レベルで行う必要があります。 ポッドを個別にロールオーバーできるようにする場合は、ポッドのラベル付けを使用するのではなく、個々のデプロイを再起動することを選択できます。

  • Istio アドオン Shared MeshConfig を使用している場合は、カナリア アップグレードを実行する前に、MeshConfig 設定を新しい ConfigMap にコピーまたは転送する必要があります。 詳細については、「 Mesh の構成とアップグレード」を参照してください。

  • Istio アドオンは、リビジョンごとに Istio イングレス ゲートウェイ ポッドとデプロイをデプロイします。 カナリア アップグレードを実行していて、クラスターに 2 つのコントロール プレーン リビジョンがインストールされている場合は、両方のリビジョンで複数のイングレス ゲートウェイ ポッドのトラブルシューティングが必要になる場合があります。

関連情報

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

サードパーティのお問い合わせ窓口に関する免責事項

Microsoft では、このトピックに関する追加情報を見つけるのに役立つサード パーティの連絡先情報を提供しています。 将来予告なしに変更されることがあります。 Microsoft は、第三者の連絡先情報の正確性を保証しません。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。