共用方式為


讓容器使用 Azure 虛擬網路功能

若要將一組豐富的 Azure 網路功能帶入容器,您可以使用支援虛擬機的相同軟體定義網路堆疊。 Azure 虛擬網絡 容器網路介面 (CNI) 外掛程式會在 Azure 虛擬機中安裝。 外掛程式會將虛擬網路中的IP位址指派給虛擬機中啟動的容器。 它會將它們連結至虛擬網路,並將它們直接連線到其他容器和虛擬網路資源。

外掛程式不會依賴重疊網路或路由來進行連線,並提供與虛擬機相同的效能。 概括而言,外掛程式提供下列功能,以便您可以:

  • 將虛擬網路IP位址指派給每個Pod,其中可能包含一或多個容器。
  • 透過 Azure ExpressRoute 或站對站虛擬專用網,將 Pod 連線到對等互連的虛擬網路和內部部署。 Pod 也可以從對等互連和內部部署網路連線。
  • 使用 Pod 存取服務。 例如,Azure 儲存體 和 Azure SQL 資料庫 會受到虛擬網路服務端點的保護。
  • 將網路安全組和路由直接套用至 Pod。
  • 將 Pod 直接放在 Azure 內部或公用負載平衡器後面,就像虛擬機一樣。
  • 指派 Pod 公用 IP 位址,使其可從因特網直接存取。 Pod 也可以存取網際網路本身。
  • 使用 Pod 與 Kubernetes 資源順暢地運作,例如服務、輸入控制器和 Kube DNS。 Kubernetes 服務也可以透過 Azure Load Balancer 在內部或外部公開。

下圖顯示外掛程式如何將 Azure 虛擬網絡 功能提供給 Pod。

顯示容器網路概觀的圖表。

外掛程式支援 Linux 和 Windows 平台。

將 Pod 連線到虛擬網路

Pod 會在屬於虛擬網路的虛擬機中啟動。 Pod 的IP位址集區會設定為虛擬機網路介面上的次要位址。 Azure CNI 會設定 Pod 的基本網路連線能力,並管理集區中 IP 位址的使用率。 當虛擬機中出現 Pod 時,Azure CNI 會從集區指派可用的 IP 位址,並將 Pod 連線到虛擬機中的軟體網橋。 Pod 終止時,IP 位址會新增回集區。 下圖顯示Pod如何連線到虛擬網路。

顯示容器網路詳細數據的圖表。

網際網路存取

若要讓Pod存取因特網,外掛程式會將iptables規則設定為網路位址轉換 (NAT) 以轉譯來自Pod的因特網系結流量。 封包的來源 IP 位址會轉譯為虛擬機器網路介面上的主要 IP 位址。 Windows 虛擬機會自動將目的地為虛擬機所在子網外部IP位址的NAT流量來源。 通常,會轉譯目的地為虛擬網路 IP 範圍外部之 IP 位址的所有流量。

限制

外掛程式支援每個虛擬機最多 250 個 Pod,以及虛擬網路中最多 16,000 個 Pod。 這些限制與 Azure Kubernetes Service (AKS) 不同。

使用外掛程式

您可以使用下列外掛程式,為 Pod 或 Docker 容器提供基本虛擬網路附件:

  • Azure Kubernetes Service:選取 [進階網络 ] 選項,使用外掛程式整合至 AKS。 透過進階網路功能,您可以在現有或新的虛擬網路中部署 Kubernetes 叢集。 若要深入瞭解進階網路功能及其設定步驟,請參閱 AKS 中的網路設定。
  • AKS 引擎:使用 AKS 引擎來產生 Azure Resource Manager 範本,以部署 Azure 中的 Kubernetes 叢集。 如需詳細指示,請參閱 部署 AKS 引擎 Kubernetes 叢集的外掛程式。
  • 在 Azure 中建立您自己的 Kubernetes 叢集:使用外掛程式,為您自己部署的 Kubernetes 叢集中的 Pod 提供基本網路功能,而不需要依賴 AKS 引擎之類的 AKS 或工具。 在此案例中,已在叢集中的每部虛擬機器上安裝並啟用外掛程式。 如需詳細指示,請參閱部署自行部署的 Kubernetes 叢集外掛程式
  • Azure 中 Docker 容器的虛擬網路附件:當您不想建立 Kubernetes 叢集,且想要在虛擬機中使用虛擬網路附件建立 Docker 容器時,請使用外掛程式。 如需詳細指示,請參閱部署適用於 Docker 的外掛程式