Azure Container Apps でのアプリケーション ライフサイクル管理
Azure Container Apps アプリケーションのライフサイクルは、リビジョンを中心に展開されます。
コンテナー アプリをデプロイすると、最初のリビジョンが自動的に作成されます。 コンテナーの変更時にさらにリビジョンが作成されたり、構成の template
セクションに対して調整が行われたりします。
コンテナー アプリには、デプロイ、更新、非アクティブ化、シャットダウンの 4 つのフェーズがあります。
展開
コンテナー アプリがデプロイされると、最初のリビジョンが自動的に作成されます。
更新
コンテナー アプリがリビジョン スコープ変更で更新されると、新しいリビジョンが作成されます。 古いリビジョンを自動的に非アクティブ化するか (単一リビジョン モード)、または使用可能なままにするか (複数リビジョン モード) を選択できます。
ダウンタイムなしのデプロイ
単一リビジョン モードでは、Container Apps によって、新しいリビジョンを作成するときにアプリにダウンタイムが発生しないように自動的に設定されます。 既存のアクティブなリビジョンは、新しいリビジョンの準備ができるまで非アクティブ化されません。 イングレスが有効になっている場合、新しいリビジョンの準備ができるまで、既存のリビジョンはトラフィックの 100% を引き続き受信します。
注意
新しいリビジョンは、そのレプリカのいずれかが開始され、準備ができたときに準備完了と見なされます。 すべてのコンテナーが起動し、startup probe と readiness probe を渡すと、レプリカの準備が整います。
複数リビジョン モードでは、リビジョンをアクティブ化または非アクティブ化するタイミングと、イングレス トラフィックを受信するリビジョンを制御します。 latestRevision
を true
に設定してトラフィック分割ルールが構成されている場合、準備ができるまでトラフィックは最新のリビジョンに切り替わりません。
非アクティブ化
リビジョンが不要になったら、後で再アクティブ化するオプション付きでリビジョンを非アクティブ化できます。 非アクティブ化中に、リビジョン内のコンテナーがシャットダウンされます。
Shutdown
コンテナーは、次の状況でシャットダウンされます。
- コンテナー アプリのスケールイン時
- コンテナー アプリが削除される
- リビジョンが非アクティブ化されている
シャットダウンが開始されると、コンテナー ホストは SIGTERM メッセージをコンテナーに送信します。 コンテナーに実装されているコードでは、このオペレーティング システム レベルのメッセージに応答して終了処理をすることができます。
アプリケーションが 30 秒以内に SIGTERM
メッセージに応答しない場合、SIGKILL でコンテナーが終了します。