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 リソースとして管理されていない点については、ネットワーク設計するに当たっては大きな考慮事項になりそうです。

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

スポンサーリンク

関連リンク

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