Azure Arc 上の Azure Container Apps (プレビュー)

Container Apps は、Azure Arc 対応 AKS または AKS-HCI クラスターで実行できます。

Azure Arc 対応 Kubernetes クラスターで実行すると、次のことができます。

  • Container Apps の機能を利用する開発者
  • IT 管理者は、内部インフラストラクチャで Container Apps をホストすることで、企業のコンプライアンスを維持します。

Azure Container Apps を実行するための Azure Arc 対応 Kubernetes クラスターの設定を介して、Container Apps 用に Kubernetes クラスターを設定する方法について説明します

クラスターを構成するときに、次のアクションを実行します。

パブリック プレビューの制限事項

次のパブリック プレビューの制限は、Azure Arc 対応 Kubernetes 上の Azure Container Apps に適用されます。

制限 詳細
サポート対象の Azure リージョン 米国東部、西ヨーロッパ、東アジア
クラスターのネットワーク要件 LoadBalancer サービスの種類をサポートする必要があります
機能: マネージド ID 使用不可
機能: マネージド ID を使用して ACR からイメージをプルする 使用不可 (マネージド ID によって異なる)
ログ Log Analytics は、サイトごとではなく、クラスター拡張機能を使用して構成する必要がある

Container Apps 拡張機能によって作成されたリソース

Container Apps 拡張機能が Azure Arc 対応 Kubernetes クラスターにインストールされると、指定されたリリース名前空間に複数のリソースが作成されます。 これらのリソースを使用すると、クラスターを Microsoft.App リソース プロバイダーの拡張機能として使用して、アプリの管理と操作をサポートできます。

必要に応じて、拡張機能を使用してイベント ドリブン スケーリング用に KEDA をインストールできます。 ただし、クラスターで許可される KEDA インストールは 1 つだけです。 既存のインストールがある場合は、クラスター拡張機能をインストールするときに KEDA のインストールを無効にします。

次の表では、作成された各リビジョンのロールについて説明します。

Pod 説明 インスタンスの数 CPU メモリ Type
<extensionName>-k8se-activator スケーリング パイプラインの一部として使用されます 2 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-billing 課金レコードの生成 - Azure Arc 対応 Kubernetes 上の Azure Container Apps はプレビュー期間中は無料です 3 100 millicpu 100 MB ReplicaSet
<extensionName>-k8se-containerapp-controller クラスター上にリソースを作成し、コンポーネントの状態を維持するコア オペレーター ポッド。 2 100 millicpu 1 GB ReplicaSet
<extensionName>-k8se-envoy すべてのデータ プレーン HTTP 要求のフロントエンド プロキシ レイヤー。 受信トラフィックを正しいアプリにルーティングします。 3 1 コア 1536 MB ReplicaSet
<extensionName>-k8se-envoy-controller Envoy 構成を生成する演算子 2 200 millicpu 500 MB ReplicaSet
<extensionName>-k8se-event-processor システムによって使用可能な最初のインスタンスが取得される間に、ゼロにスケーリングされたアプリに役立つ代替ルーティング先。 2 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-http-scaler KEDA にスケーリング情報を提供するために、受信要求のボリュームを監視します。 1 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-keda-cosmosdb-scaler KEDA Cosmos DB スケーラー 1 10 m 128 MB ReplicaSet
<extensionName>-k8se-keda-metrics-apiserver KEDA メトリック サーバー 1 1 コア 1000 MB ReplicaSet
<extensionName>-k8se-keda-operator 0/1 から N 個のインスタンスへのワークロードのスケールインとスケールアウト 1 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-log-processor アプリやその他のコンポーネントからログを収集し、Log Analytics に送信します。 2 200 millicpu 500 MB DaemonSet
<extensionName>-k8se-mdm メトリックとログ エージェント 2 500 millicpu 500 MB ReplicaSet
dapr-metrics Dapr メトリック ポッド 1 100 millicpu 500 MB ReplicaSet
dapr-operator Dapr のコンポーネントの更新とサービス エンドポイントを管理する 1 100 millicpu 500 MB ReplicaSet
dapr-placement-server アクターのみに使用 - アクター インスタンスをポッドにマップするマッピング テーブルを作成します 1 100 millicpu 500 MB StatefulSet
dapr-sentry サービス間の mTLS を管理し、CA として機能します 2 800 millicpu 200 MB ReplicaSet

Azure Arc 上の Azure Container Apps (プレビュー) に関する FAQ

いくらになりますか?

Azure Arc 対応 Kubernetes 上の Azure Container Apps は、パブリック プレビュー期間中は無料です。

どの Container Apps 機能がサポートされていますか?

プレビュー期間中は、特定の Azure Container App 機能が検証されています。 サポートされている場合は、Azure portal の左側のナビゲーション オプションがアクティブ化されます。 まだサポートされていない機能は淡色表示のままです。

マネージド ID はサポートされていますか?

不正解です。 Azure Arc で実行している場合、アプリにマネージド ID を割り当てることはできません。アプリで別の Azure リソースを操作するための ID が必要な場合は、代わりにアプリケーション サービス プリンシパルを使用することを検討してください。

スケーリングの制限はありますか?

Azure Arc 対応 Kubernetes 上の Azure Container Apps でデプロイされたすべてのアプリケーションは、基盤となる Kubernetes クラスターの制限内でスケーリングできます。 クラスターで使用可能なコンピューティング リソース (主に CPU とメモリ) が不足している場合、アプリケーションは、Kubernetes が使用可能なリソースを使用してスケジュールできるアプリケーションのインスタンスの数にスケーリングされます。

どのようなログが収集されますか?

システム コンポーネントとアプリケーションの両方のログが標準出力に書き込まれます。

どちらのログの種類も、標準の Kubernetes ツールを使用して分析用に収集できます。 また、Log Analytics ワークスペースを使用してアプリ環境クラスター拡張機能を構成し、そのワークスペースにすべてのログを送信することもできます。

既定では、システム コンポーネントからのログは Azure チームに送信されます。 アプリケーション ログは送信されません。 拡張機能の構成設定として logProcessor.enabled=false を設定することで、これらのログが転送されないようにすることができます。 この構成設定により、Log Analytics ワークスペースへのアプリケーションの転送も無効になります。 ログ プロセッサを無効にすると、サポート ケースに必要な時間に影響する可能性があります。また、他の方法を使用して標準出力からログを収集するように求められます。

プロバイダー登録エラーが発生した場合はどうすればよいですか?

Azure Container Apps 接続環境リソースを作成すると、一部のサブスクリプションに "登録されているリソース プロバイダーが見つかりません" というエラーが表示されることがあります。 エラーの詳細に、有効と見なされる一連の場所と API バージョンが含まれていることがあります。 このエラー メッセージが返された場合は、サブスクリプションを Microsoft.App プロバイダーに再登録する必要があります。 プロバイダーを再登録しても、既存のアプリケーションや API には影響しません。 再登録するには、Azure CLI を使用して az provider register --namespace Microsoft.App --wait を実行します。 次に、接続環境コマンドを再試行します。

ARM64 ベースのクラスターに Container Apps 拡張機能をデプロイできますか?

ARM64 で動作しているクラスターは現在サポートされていません。

拡張機能のリリース ノート

Container Apps 拡張機能 v1.0.46 (2022 年 12 月)

  • Container Apps 拡張機能の初期パブリック プレビュー リリース

Container Apps 拡張機能 v1.0.47 (2023 年 1 月)

  • Envoy を 1.0.24 にアップグレードしました

Container Apps 拡張機能 v1.0.48 (2023 年 2 月)

  • EasyAuth コンテナーにプローブを追加しました
  • dapr-operator のメモリ制限を増やしました
  • プラットフォーム ヘッダーの上書き防止を追加しました

Container Apps 拡張機能 v1.0.49 (2023 年 2 月)

  • KEDA を 2.9.1 にアップグレードしました
  • Dapr を 1.9.5 にアップグレードしました
  • Envoy コントローラーのリソース制限を 200 m CPU に引き上げました
  • Container Apps コントローラーのリソース制限を 1 GB メモリに増やしました
  • EasyAuth サイドカー リソースの制限を 50 m CPU に減らしました
  • 欠落しているメトリック値の KEDA エラー ログを解決しました

Container Apps 拡張機能 v1.0.50 (2023 年 3 月)

  • パブリック クラウドと同期されたログ イメージを更新しました

Container Apps 拡張機能 v1.5.1 (2023 年 4 月)

  • 新しいバージョン管理番号の形式
  • Dapr を 1.10.4 にアップグレードしました
  • 新しいリビジョンのデプロイ後に Envoy の規模を維持しました
  • 既定のスタートアップ プローブがコンテナーに追加されたときに変更します。開発者がスタートアップ プローブと準備プローブの両方を定義していない場合は、既定のスタートアップ プローブが追加されます
  • CONTAINER_APP_REPLICA_NAME 環境変数をカスタム コンテナーに追加しました
  • 複数のリビジョンが停止した場合のパフォーマンスを向上させました

Container Apps 拡張機能 v1.12.8 (2023 年 6 月)

  • OSS Fluent Bit を 2.1.2 に更新しました
  • Dapr を 1.10.6 にアップグレードしました
  • カスタム ポートで公開されているコンテナー レジストリに対応しました
  • コンテナー アプリが停止したときにリビジョンのアクティブ化/非アクティブ化を可能にしました
  • 変更履歴リストが init コンテナーを返さない問題を修正しました
  • cors ポリシーに対して既定の許可ヘッダーを追加しました

Container Apps 拡張機能 v1.12.9 (2023 年 7 月)

  • EasyAuth サイドカー コンテナーのマイナー更新
  • 拡張機能監視エージェントを更新しました

Container Apps 拡張機能 v1.17.8 (2023 年 8 月)

  • EasyAuth を 1.6.16 に更新しました
  • Dapr を 1.10.8 に更新しました
  • Envoy を 1.25.6 に更新しました
  • Azure Container App ジョブのボリューム マウントサポートを追加しました
  • TCP イングレスの種類を持つアプリケーションの IP 制限を追加しました
  • 複数の公開ポートを持つ Container Apps のサポートを追加しました

Container Apps 拡張機能 v1.23.5 (2023 年 12 月)

  • Envoy を 1.27.2 に更新する
  • KEDA を v2.10.0 に更新する
  • EasyAuth を 1.6.20 に更新する
  • Dapr を 1.11 に更新する
  • Envoy を最大 TLS 1.3 に設定する
  • ログ プロセッサ ポッドのクラッシュを解決するための修正
  • イメージ プル シークレットの取得に関する問題の修正
  • Envoy の配置を更新して、可能な限り使用可能なノードに分散する
  • リビジョンの競合の結果としてコンテナー アプリがプロビジョニングに失敗した場合は、プロビジョニング状態を失敗に設定します

Container Apps 拡張機能 v1.30.6 (2024 年 1 月)

  • KEDA を v2.12 に更新する
  • Envoy SC イメージを v1.0.4 に更新する
  • Dapr イメージを v1.11.6 に更新する
  • Envoy ルートの既定の応答タイムアウトを 1800 秒に追加しました
  • Fluent ビットの既定のログ レベルが警告に変更されました
  • ログの出力を確保するためにジョブ ポッドの削除を遅らせる
  • 失敗したジョブ実行のジョブ ポッドの削除に関する問題を修正しました
  • 中断状態のジョブでも失敗したポッドが削除されていることを確認する
  • TCP アプリケーションの HTTPOptions を解決しないように更新する
  • アプリケーションが HTTP または HTTPS でリッスンできるようにする
  • ジョブを中断する機能を追加する
  • KEDA スケーラーがジョブの実行を停止した後にジョブの作成に失敗する問題を修正しました
  • クラスターの再起動時にコンテナー アプリ ジョブに startingDeadlineSeconds を追加する
  • Envoy アクセス ログ サーバーの大量のログを削除しました
  • Azure Arc 対応 Kubernetes 上の Azure Container Apps の監視構成バージョンを更新しました

次のステップ

Container Apps 接続環境を作成する (プレビュー)