私は、Windows コンテナーを Azure App Service で実行するために 1 週間以上苦労してきました。当初は標準コンテナー インスタンスを使用するつもりでしたが、カスタムではなくパブリックまたはプライベート ネットワークのオプションしかないようです (Linux コンテナーとは異なります)。Windows コンテナーをアプリ サービス内で実行すると、他の Web サイトと同じネットワーク オプションが利用できるようです。Azure の App Services での Windows コンテナーのサポートは、ほぼ1歳しかし、非常に基本的なシナリオ以外では、これを扱うリソースは比較的少ないです。
コンテナーを使用する目的は、VM のオーバーヘッドなしで、サードパーティのバックグラウンド Windows サービスをオンデマンドで実行することです。アプリ サービスを使用しているため、ステータス情報用の asp.net core REST エンドポイントを追加することにしました。コンテナーは に基づいていますmcr.microsoft.com/windows/servercore:ltsc2019
。.net と asp.net core (ベース イメージには .net フレームワークのみが含まれています) をダウンロードしてインストールし、サービスをインストールして、Web サイトをビルドして実行します。エントリ ポイントは、いくつかの構成値を更新し、サービスを管理する asp.net core エンドポイントを実行する Powershell スクリプトです。
ポータルを使用すると、コンテナとコード、WindowsとLinuxのオプションを選択して、基本的なクイックスタートイメージですが、Azure Container Registryの自分のイメージは正常に起動しません。サポートされているベースイメージ、ローカル マシンでは問題なく動作します。Azure では、すべてが作成されますが、起動しません。ログの少量は、起動してファイル共有ボリュームをマウントし、その後基本的に停止することを示しています。
- イメージ用のコンテナを作成する
- コンテナを起動しようとしています
- コンテナの起動に成功しました
- コンテナが起動しました
- コンテナ構成ユーティリティを呼び出す
- コンテナユーティリティの構成が完了しました
- コンテナが起動しました
- コンテナを停止しようとしています
- コンテナを終了しようとしています
- コンテナを削除しようとしています
- コンテナが正常に削除されました
また、クイックスタート イメージを使用しても、実際のコンテナー インスタンスが表示されないことにも驚かされます。おそらく、App Service プランで直接実行されているためと思われますが、その原因はよくわかりません。Web アプリから App Service プラン (Windows コンテナー プラン) に移動すると、[アプリ] の下に「アプリ、コンテナー、ウィンドウ」タイプの単一のアプリが表示されますが、コンテナー イメージ タイプのリソースの場合のように、コンソール ログを表示したりシェルを実行したりするためのアクセスがどこにも見つかりません。私が見つけたいくつかのスクリーンショットでは、「設定」の下に「コンテナー設定」リンクが表示されていますが、このリンクは表示されていません。これは何らかの理由で Linux コンテナーにのみ存在するのかもしれません。
では、アプリ サービス内で実行しているときにコンテナーの問題をトラブルシューティングするにはどうすればよいでしょうか? どこかに何か見落としているのでしょうか?
答え1
診断
Diagnose & Solve Problems -> Container Initialization
Azure Web App for Containers をクリックすると、貴重なデバッグ情報が見つかります。
クーズー
App Service には、デバッグ、調査、ファイルのアップロードに使用できるデバッグ コンソールと、環境に関する情報を取得するための JSON エンドポイントが付属しています。このコンソールは、アプリの Kudu コンソールまたは SCM ダッシュボードと呼ばれます。
このダッシュボードにアクセスするには、リンク https:// にアクセスしてください。[アプリ名].scm.azurewebsites.net/ です。
Kudu が提供するものの一部は次のとおりです。
- PowerShell コマンドレットと基本的な DOS コマンドを実行できるアプリケーション ログ ストリーム診断ダンプ デバッグ コンソールの環境設定。
https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-performance-degradation