Kubernetes アプリケーション オファーのデプロイが失敗した場合のトラブルシューティング
この記事では、Microsoft Azure Marketplace で受け入れられた Kubernetes アプリケーション オファーのデプロイに失敗した場合のトラブルシューティング方法について説明します。 Kubernetes オファーの購入を開始すると、Azure によって Azure Resource Manager テンプレート (ARM テンプレート) がデプロイされ、オファーを満たすために必要なリソースがインストールされます。 ただし、ARM テンプレートのデプロイは、さまざまな理由で失敗する可能性があります。
トラブルシューティングのチェックリスト
デプロイ操作ログを確認する
デプロイエラーの原因を特定するには、 デプロイ操作ログを調べる必要があります。 Azure portal で [デプロイに失敗しました ] ページが表示されている場合は、次の手順の手順 5 から開始します。 代わりに、Azure portal を終了した場合、または別のポータル ページに移動した場合は、次のすべての手順に従います。
Azure portal で、 [リソース グループ] を検索して選択します。
リソース グループの一覧で、Kubernetes アプリケーションをデプロイしようとしたリソース グループの名前を選択します。
リソース グループの Overview ページで、 Essentials セクションを見つけて、 Deployments フィールドの横に表示されるハイパーリンクテキストを選択します。 このテキストには、リソース グループのリソースデプロイ履歴の成功率が表示されます (たとえば、 4 失敗、30 成功)。
リソース グループに対して試行されたデプロイの一覧で、次の対応するフィールドに基づいて、失敗したデプロイの デプロイ名 値を選択します。
- 最終更新日 (タイムスタンプ)
- 期間
- Status (Succeeded の代わりに Failed を表示)
デプロイ ページの Deployment の詳細一覧で、Status フィールドの値が Conflict である Resource を見つけます。 そのリソースの Operation の詳細 リンクを選択します。
Operation の詳細 ウィンドウで、Status プロパティ (Conflict の値を示します) を見つけて、プロパティの下にある Status メッセージ ボックスを調べます。
ステータス メッセージ内の JSON コードには、
Failed
のstatus
プロパティが表示されます。 また、code
の子プロパティ ("ExtensionOperationFailed" などのエラー コード名) とmessage
("拡張機能の操作は次のエラーで失敗しました: 指定された値から拡張機能のバージョンを解決できませんでした") などのエラー メッセージの説明を含むerror
プロパティも表示されます。 JSON コードは次のテキストのようになります。{ "status": "Failed", "error": { "code": "ExtensionOperationFailed", "message": "The extension operation failed with the following error: Failed to resolve the extension version from the given values." } }
次のセクションでは、一般的な障害シナリオの原因と解決策について説明します。
原因 1: 選択した AKS クラスターにアプリケーションがインストールされませんでした
選択した Azure Kubernetes Service (AKS) クラスターに Kubernetes アプリケーションがインストールされていない場合は、次のテキストのようなエラー メッセージが表示されます。
要求 https://management.azure.com/subscriptions/<subscription-guid>/resourceGroups/resourceGroup/providers/Microsoft.ContainerService/managedclusters/aks-cluster/extensionaddons/default?api-version=2021-03-01 に失敗しました。 エラー コード: 許可されていません。 理由: 禁止されています。
{ "error": { "code": "AuthorizationFailed", "message": "The client '<client-guid>' with object id '<client-guid>' does not have authorization to perform action 'Microsoft.ContainerService/managedclusters/extensionaddons/read' over scope '/subscriptions/<subscription-guid>/resourceGroups/resourceGroup/providers/Microsoft.ContainerService/managedclusters/aks-cluster/extensionaddons/default' or the scope is invalid. If access was recently granted, please refresh your credentials." } }
解決策 1a: Microsoft.KubernetesConfiguration リソース プロバイダーを登録する
Microsoft.KubernetesConfiguration リソース プロバイダーを登録します。 この場合、Kubernetes アプリケーションをデプロイするために Microsoft.KubernetesConfiguration リソース プロバイダーが必要であるため、インストールに失敗しました。 登録手順については、「azure Marketplace からコンテナー オファーをデプロイする」の「リソース プロバイダーの登録」セクション参照してください。
解決策 1b: AKS クラスターの正常性を維持する
一般に、インストール期間中に他の問題が発生しないようにAKS クラスターの正常性を確認する必要があります。 クラスターが正常であることを確認するには、クラスターで特定された問題を解決します。
解決策 1c: Azure Monitor アクティビティ ログを調べる
クラスターが正常であっても、インストールが失敗した場合はどうなりますか? その場合は、AKS クラスター内の Azure Monitor アクティビティ ログ を調べて、インストールのその段階で障害の原因を特定します。
原因 2: サブスクリプションにリソースの制約がある
Azure サブスクリプションにはリソースの制約があるため、次のテキストのようなエラー メッセージを生成するエラーが発生します。
"不明" の支払い方法は、OfferId :'<offer-name>'、PlanId '<subscription-plan-name>' のオファーではサポートされていません。
解決策 2: サブスクリプションが必要な課金構成を満たしていることを確認する
サブスクリプションの課金構成を確認して、Kubernetes アプリケーションのリソース要件を満たしていることを確認します。 詳細については、「 Purchase 検証チェックを参照してください。
原因 3: お客様のリージョンでオファーを利用できませんでした
オファーを特定の地理的リージョンで販売できないことを示すエラー メッセージが表示されます。 エラー メッセージは、次のテキストのようになります。
オファー: '<offer-name>' は、'<subscription-guid>' というサブスクリプションで購入できません。'<-letter-region-code' は販売されません。
解決策 3: オファーが引き続き利用可能かどうかを確認する
オファーがまだ使用可能であることを確認し、オファーが適用されるリージョンを再確認します。
原因 4: 内部サーバー エラーが発生しました
拡張機能リソースがインストールされていないため、Kubernetes アプリケーションがインストールされませんでした。 このエラーにより、次のエラー メッセージが生成されます。
内部サーバー エラーで拡張機能の展開に失敗しました
解決策 4: 拡張機能を削除して再インストールする
まず、オファー購入の一部である拡張機能リソースを削除します。 次に、拡張機能を再インストールします。
原因 5: Helm チャートがインストールされませんでした
Helm グラフのエラーにより、次のエラー メッセージが生成されます。
リリース用のパス [] からグラフをインストールできませんでした
解決策 5: ARM テンプレートで作成したエントリを再確認する
Azure portal で ARM テンプレートのデプロイ用に入力した値と選択が、Kubernetes アプリケーションで受け入れ可能であることを確認します。
原因 6: このプランのサブスクリプションの法律条項に同意していない
サブスクリプションを使用する前に、イメージの法的条項に同意する必要があります。 それ以外の場合は、次のエラー メッセージが表示されます。
このサブスクリプションの法律条項 "<subscription-guid>" に同意していません。 サブスクリプションを使用する前に、イメージの法的条項に同意する必要があります。
解決策 6: 法律条項に同意する
Azure ポータルを使用してデプロイできます。 Azure portal には、法律条項を読んで同意するための UI エクスペリエンスが用意されています。
次のステップ
AKS クラスター拡張機能をデプロイするときのエラーのトラブルシューティング
サードパーティの情報に関する免責事項
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。