VNet 統合されたコンテナー アプリ環境のネットワーク構成について

スポンサーリンク

※Azure Container Apps はこの投稿時点ではパブリック プレビューでの提供のため、一般提供 (GA) のタイミングで手順や挙動が変更になる場合があります。

VNet 統合された Azure Container Apps (ACA) は、実際には ACA 作成時に指定した (新規作成、もしくは既存の) VNet 統合されたコンテナー アプリ環境上で動作します。

VNet 統合されたコンテナー アプリ環境のネットワーク構成は、Azure Kubernetes Service (AKS) で Azure CNI (Container Network Interface) を利用した際の構成と同様のものである事が確認できています。

ただし、この Azure CNI についてのドキュメントは存在しますが、AKS やコンテナー アプリ環境に照らし合わせたような、イメージできる概念図が見当たらなかったため、纏めてみました。

スポンサーリンク

VNet 統合された ACA のネットワーク構成について

※設定している VNet およびサブネットのネットワーク範囲は、Azure ポータルから作成する際の既定のものを使用しています。

内部に仮想 IP を持つように構成した場合

内部に仮想 IP を持つように構成した場合のネットワーク構成は、以下の図のようになります。

ドキュメント上では、デプロイした ACA は App Subnet (アプリ サブネット) が使用される雰囲気の記載がありますが、現時点で実際には使用されていませんでした。

GA 時にはどうなるか不明ですが、ACA の App Subnet は AKS でいうところの Virtual Node Subnet (仮想ノード サブネット) ではないかと推測しています。

Virtual Node Subnet は Azure Container Instances (ACI) を Kubernetes の仮想ノードとしてデプロイされたコンテナー アプリが使用するサブネットとなっていますが、ACA では現状対応していないためと考えています。

それ以外では、以下の Azure リソースではないネットワーク セグメントがコンテナー アプリ環境に自動的に設定されます。

  • dockerBridgeCidr (10.2.0.1/16)
  • platformReservedCider (10.1.0.0/16)
    • platformReservedDnsIP (10.1.0.2)

これらは主に Kubernetes サービスや ACA を含むコンテナー アプリ間通信で内部的に使用されるものとなり、この設定値は Azure ポータルのコンテナー アプリ環境の管理ブレード内から [概要] – [Json ビュー] で確認することが可能です。

また、Azure ポータルから構成、作成する際には、自動的にネットワーク セグメントが固定で設定されますが、Azure CLI でデプロイする際には指定することはk脳となっています。

外部に仮想 IP を持つように構成した場合

外部に仮想 IP を持つように構成した場合のネットワーク構成は、以下の図のようになり、内部の場合とほぼ同様の構成となります (違いは ELB のフロントエンドに着信用のパブリック IP アドレスが割り当てられる、ILB は存在しない点)。

補足 : AKS で Azure CNI を利用した場合

AKS で Azure CNI を利用した場合のネットワーク構成は、以下となります。

コンテナー アプリ環境とは、サブネット名やネットワーク セグメント名は異なりますが、同じ Azure CNI の構成である事が確認できています。

スポンサーリンク

まとめ

蒸気を踏まえて、Kubernetes で使用されるネットワーク セグメントを含めた形の構成は、以下となります。

図にすることで、コンテナー アプリ環境のネットワーク構成が理解することができましたが、Azure リソースとして管理されていない点については、ネットワーク設計するに当たっては大きな考慮事項になりそうです。

ちなみに内部的に使用されるネットワーク セグメントとの重複は推奨していない (予期しない動作やエラーの原因となるため) とのこと (ツライ

スポンサーリンク

関連リンク

Azure Container Apps
タイトルとURLをコピーしました