次の方法で共有


コンテナーで Azure Virtual Network の機能を使用できるようにする

豊富な Azure ネットワーク機能をコンテナーに導入するには、仮想マシンを稼働させているものと同じソフトウェア定義ネットワーク スタックを使用できます。 Azure Virtual Network コンテナー ネットワーク インターフェイス (CNI) プラグインは、Azure 仮想マシンにインストールされます。 このプラグインを使用すると、仮想ネットワークから、仮想マシンで起動されたコンテナーに IP アドレスを割り当てることができます。 これらは仮想ネットワークに接続され、他のコンテナーと仮想ネットワーク リソースには直接接続されます。

プラグインは接続のためにオーバーレイ ネットワークまたはルートに頼らず、仮想マシンと同等のパフォーマンスを提供します。 大まかに言うと、プラグインは次の機能を備えているため、次のことができるようになります。

  • 1 つまたは複数のコンテナーで構成できるすべてのポッドに、仮想ネットワークの IP アドレスを割り当てる。
  • Azure ExpressRoute またはサイト間の仮想プライベート ネットワークを介して、ピアリングされた仮想ネットワークとオンプレミスにポッドを接続します。 ポッドには、ピアリングされたネットワークおよびオンプレミスのネットワークからも到達可能です。
  • ポッドを使用してサービスにアクセスします。 たとえば、Azure Storage と Azure SQL Database は、仮想ネットワーク サービス エンドポイントによって保護されています。
  • ネットワーク セキュリティ グループとルートをポッドに直接適用します。
  • 仮想マシンと同様に、Azure 内部またはパブリック ロード バランサーの背後にポッドを配置する。
  • ポッドにパブリック IP アドレスを割り当てて、インターネットから直接アクセスできるようにします。 ポッド自体もインターネットにアクセスできます。
  • ポッドを使用して、サービス、イングレス コントローラー、Kube DNS など、Kubernetes リソースとシームレスに連携する。 Azure Load Balancer を使用して、Kubernetes サービスを外部または内部に公開できます。

次のダイアグラムは、プラグインが Azure 仮想ネットワークの機能をポッドに提供する方法を示しています。

コンテナー ネットワークの概要を示すダイアグラム。

プラグインは、Linux プラットフォームと Windows プラットフォームの両方をサポートします。

ポッドを仮想ネットワークに接続する

ポッドは仮想ネットワークの一部である仮想マシンで起動されます。 ポッド用の IP アドレスのプールは、仮想マシンのネットワーク インターフェイス上のセカンダリ アドレスとして構成されます。 Azure CNI は、ポッドの基本的なネットワーク接続を設定し、プール内の IP アドレスの使用を管理します。 ポッドが仮想マシンで起動すると、Azure CNI はプールから使用可能な IP アドレスを割り当て、ポッドを仮想マシン内のソフトウェア ブリッジに接続します。 ポッドが終了すると、IP アドレスはプールに戻されます。 次のダイアグラムは、ポッドが仮想ネットワークに接続するしくみを示しています。

コンテナー ネットワークの詳細を示すダイアグラム。

インターネットへのアクセス

ポッドがインターネットにアクセスできるようにするため、プラグインはポッドからのインターネット バインド トラフィックをネットワーク アドレス変換 (NAT) で変換するように iptables を構成します。 パケットの送信元 IP アドレスは、仮想マシンのネットワーク インターフェイスのプライマリ IP アドレスに変換されます。 Windows 仮想マシンは、仮想マシンが配置されているサブネットの外部にある IP アドレスに宛てられたトラフィックのソース NAT を自動的に行います。 通常、仮想ネットワークの IP 範囲外の IP アドレスに送信されるすべてのトラフィックが変換されます。

制限

プラグインは、仮想マシンごとに最大 250 個のポッド、1 つの仮想ネットワーク内で最大 16,000 個のポッドをサポートします。 これらの制限は、Azure Kubernetes Service (AKS) の場合と異なります。

プラグインを使用する

次の方法でプラグインを使用して、ポッドまたは Docker コンテナーに基本的な仮想ネットワーク接続を提供できます。

  • Azure Kubernetes Service: プラグインを使用し、[高度なネットワーク] オプションを選択して AKS に統合します。 高度なネットワークを使用すると、既存または新規の仮想ネットワークに Kubernetes クラスターをデプロイできます。 高度なネットワークの詳細とその設定手順については、AKS のネットワーク構成に関する記事を参照してください。
  • AKS エンジン: AKS エンジンを使用して、Azure に Kubernetes クラスターをデプロイするための Azure Resource Manager テンプレートを生成します。 詳細については、AKS エンジン Kubernetes クラスター用プラグインのデプロイに関する記事を参照してください。
  • Azure で独自の Kubernetes クラスターを作成する: プラグインを使用して、AKS、または AKS エンジンのようなツールに頼ることなく、自分でデプロイした Kubernetes クラスター内のポッドに対する基本的なネットワーク機能を提供します。 この場合、プラグインはクラスター内のすべての仮想マシンにインストールされて有効にされます。 詳細については、自身でデプロイした Kubernetes クラスター用プラグインのデプロイに関するページをご覧ください。
  • Azure 内の Docker コンテナーに対する仮想ネットワーク接続: Kubernetes クラスターを作成せず、仮想マシン内に仮想ネットワーク接続を使用する Docker コンテナーを作成する場合は、プラグインを使用します。 詳しくは、「Docker コンテナー用プラグインのデプロイ」をご覧ください。