共用方式為


部署獨立 Windows Docker 主機的容器網路功能

Azure CNI 外掛程式會為獨立 Docker 主機和 Kubernetes 叢集啟用每個容器/Pod 網路功能。 在本文中,您將了解如何安裝和設定獨立 Windows Docker 主機的 CNI 外掛程式。

必要條件

建立虛擬網路和 Azure Bastion 主機

下列程式會建立具有資源子網、Azure Bastion 子網和 Bastion 主機的虛擬網路:

  1. 在入口網站中,搜尋並選取 [虛擬網路]

  2. 在 [虛擬網路] 頁面上,選取 [+ 建立]。

  3. 在 [建立虛擬網路] 的 [基本] 索引標籤中,輸入或選取下列資訊:

    設定
    專案詳細資料
    訂用帳戶 選取您的訂用帳戶。
    資源群組 選取 [新建]
    輸入 test-rg 以取得名稱。
    選取 [確定]。
    [執行個體詳細資料]
    名稱 輸入 vnet-1
    區域 選取 [美國東部 2]

    在 Azure 入口網站 中建立虛擬網路的 [基本] 索引標籤螢幕快照。

  4. 選取 [下一步],繼續前往 [安全性] 索引標籤。

  5. 在 [ Azure Bastion ] 區段中,選取 [ 啟用 Bastion]。

    Bastion 會使用瀏覽器,透過安全殼層 (SSH) 或遠端桌面通訊協定 (RDP) 連線到虛擬網路中的 VM,方法是使用其私人 IP 位址。 VM 不需要公用 IP 位址、用戶端軟體或特殊設定。 如需詳細資訊,請參閱 什麼是 Azure Bastion?

    注意

    無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格SKU。 如果您要在教學課程或測試期間部署 Bastion,建議您在使用完畢後刪除此資源。

  6. Azure Bastion 中,輸入或選取下列資訊:

    設定
    Azure Bastion 主機名稱 輸入 bastion
    Azure Bastion 公用 IP 位址 選取 [建立公用 IP 位址]
    在 [名稱] 中輸入 public-ip-bastion
    選取 [確定]。

    在 Azure 入口網站 中建立虛擬網路時,啟用 Azure Bastion 主機的選項螢幕快照。

  7. 選取 [下一步],繼續前往 [IP 位址] 索引標籤。

  8. 在 [子網路] 的 [位址空間] 方塊中,選取 [預設] 子網路。

  9. 在 [編輯子網路] 中,輸入或選取下列資訊:

    設定
    子網路詳細資料
    子網路範本 保留預設值 預設值
    名稱 輸入 subnet-1
    起始位址 保留預設值 [10.0.0.0]
    子網路大小 保留預設值 /24 (256 個位址)。

    子網設定詳細數據的螢幕快照。

  10. 選取 [新增]。

  11. 選取視窗底部的 [ 檢閱 + 建立 ]。 通過驗證後,選取 [建立]

部署網路和 Bastion 主機需要幾分鐘的時間。 完成部署或建立了虛擬網路後,請繼續進行後續步驟。

建立測試虛擬機器

下列程序會在虛擬網路中建立名為 vm-1 的測試虛擬機器 (VM)。

  1. 在入口網站中,搜尋並選取 [虛擬機器]

  2. 在 [虛擬機器] 中,選取 [+ 建立],然後選取 [Azure 虛擬機器]

  3. 在 [建立虛擬機器] 的 [基本] 索引標籤上,輸入或選取下列資訊:

    設定
    專案詳細資料
    訂用帳戶 選取您的訂用帳戶。
    資源群組 選取 [test-rg]
    [執行個體詳細資料]
    虛擬機器名稱 輸入 vm-1
    區域 選取 [美國東部 2]
    可用性選項 選取 [不需要基礎結構備援]
    安全性類型 保留預設值 [標準]
    映像 選取 [Windows Server 2022 Datacenter - x64 Gen2]
    VM 架構 保留預設值 [x64]
    大小 選取大小。
    系統管理員帳戶
    驗證類型 選取 [密碼]
    使用者名稱 輸入 azureuser
    密碼 輸入密碼。
    確認密碼 請重新輸入密碼。
    輸入連接埠規則
    公用輸入連接埠 選取 [無]。
  4. 選取頁面頂端的 [網路] 索引標籤。

  5. 在 [網路] 索引標籤中,輸入或選取以下資訊:

    設定
    網路介面
    虛擬網路 選取 [vnet-1]
    子網路 選取 [subnet-1 (10.0.0.0/24)]
    公用 IP 選取 [無]。
    NIC 網路安全性群組 選取進階
    設定網路安全性群組 選取 [新建]
    輸入 nsg-1 作為名稱。
    將其餘項目保留為預設值,然後選取 [確定]
  6. 將其餘設定保留為預設值,然後選取 [檢閱 + 建立]

  7. 檢閱設定並選取 [建立]

注意

虛擬網路中的虛擬機器 (具有 Bastion 主機) 不需要公用 IP 位址。 Bastion 會提供公用 IP,而 VM 會使用私人 IP 在網路內通訊。 您可以從裝載了 Bastion 的虛擬網路中,移除任何 VM 的公用 IP。 如需詳細資訊,請參閱中斷公用 IP 位址與 Azure VM 的關聯

注意

無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。

發生下列其中一個事件時,會停用預設輸出存取 IP:

  • 公用 IP 位址會指派給 VM。
  • 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
  • Azure NAT 閘道資源會指派給 VM 的子網。

您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。

如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設對外存取針對輸出連線,使用來源網路位址轉譯 (SNAT)

新增 IP 設定

Azure CNI 外掛程式會根據您在虛擬機器虛擬網路介面上建立的 IP 位址集區,將 IP 位址配置給容器。 針對主機上的每個容器,虛擬網路介面上必須有 IP 設定。 如果伺服器上的容器數目超過虛擬網路介面上的 IP 設定,容器就會啟動,但沒有 IP 位址。

在本節中,您會將 IP 設定新增至先前建立的虛擬機器虛擬網路介面。

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. 選取 [vm-1]

  3. 在 [設定] 中,選取 [網路]

  4. 選取 [網路介面:] 旁邊的網路介面名稱。 網路介面會以 vm-1 和隨機數命名。

  5. 在網路介面的 [設定] 中,選取 [IP 組態]

  6. 在 [IP 設定] 的 [名稱] 中 選取 [ipconfig1]

  7. 在 [ipconfig1] 設定中,將私人 IP 位址指派從 [動態] 變更為 [靜態]

  8. 選取 [儲存]。

  9. 返回至 [IP 設定]

  10. 選取 + 新增

  11. 針對 [新增 IP 設定] 輸入或選取下列資訊:

    設定
    名稱 輸入 ipconfig-2
    私人 IP 位址設定
    配置 選取 [靜態]
    IP 位址 輸入 10.0.0.5
  12. 選取 [確定]。

  13. 確認 ipconfig2 已新增為次要 IP 設定。

重複步驟 1 至 13,為您想在容器主機上部署的所有容器新增設定。

在 Windows 中設定 IP 位址

若要將多個 IP 位址指派給 Windows 虛擬機器,必須將 IP 位址新增至 Windows 中的網路介面。 在本節中,您將登入虛擬機器,並完成您在上一節所建立的 IP 設定。

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. 選取 [vm-1]

  3. 在 [概觀] 頁面的 [vm-1] 中,選取 [連線],然後選取 [Bastion]

  4. 輸入使用者名稱和密碼,這是您在先前步驟中部署虛擬機器時建立的使用者名稱和密碼。

  5. 選取 Connect

  6. 開啟虛擬機器上的網路連線設定。 依序選取 [開始] -> [執行],然後輸入。ncpa.cpl

  7. 選取 [確定]。

  8. 選取虛擬機器的網路介面,然後選取 [屬性]

    在 Windows OS 中選取網路介面的螢幕快照。

  9. 在 [乙太網路屬性中],選取 [網際網路通訊協定第 4 版 (TCP/IPv4)],然後選取 [屬性]

  10. 在 [一般] 索引標籤中,輸入或選取以下資訊:

    設定
    選取 [使用下列的 IP 位址:]
    IP 位址: 輸入 10.0.0.4
    子網路遮罩: 輸入 255.255.255.0
    預設閘道 輸入 10.0.0.1
    選取 [使用下列的 DNS 伺服器位址:]
    慣用 DNS 伺服器: 輸入 168.63.129.16此 IP 是預設 Azure DNS 的 DHCP 指派 IP 位址
  11. 選取 [進階...]

  12. 在 [IP 位址] 中選取 [新增...]

  13. 輸入或選取下列資訊:

    設定
    TCP/IP 位址
    IP 位址: 輸入 10.0.0.5
    子網路遮罩: 輸入 255.255.255.0
  14. 選取 [新增]。

  15. 若要新增更多與先前建立額外 IP 設定對應的 IP 位址,請選取 [新增]

  16. 選取 [確定]。

  17. 選取 [確定]。

  18. 選取 [確定]。

套用網路設定時,Bastion 連線會中斷幾秒鐘。 請稍候幾秒鐘,然後嘗試重新連線。 成功重新連線後,請繼續進行後續作業。

安裝 Docker

Docker 容器引擎必須安裝在您先前建立的虛擬機器上並加以設定。

透過您使用虛擬網路部署的 Azure Bastion 主機,登入先前建立的虛擬機器。

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. 選取 [vm-1]

  3. 在 [概觀] 頁面的 [vm-1] 中,選取 [連線],然後選取 [Bastion]

  4. 輸入使用者名稱和密碼,這是您在先前步驟中部署虛擬機器時建立的使用者名稱和密碼。

  5. 選取 Connect

  6. vm-1 上開啟 Windows PowerShell

  7. 下列範例會安裝 Docker CE/Moby

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    

虛擬機器會重新啟動,以在 Windows 中安裝容器支援。 重新連線到虛擬機器,系統會繼續進行 Docker 安裝程序。

如需 Windows 容器的詳細資訊,請參閱開始使用:為容器準備 Windows

在虛擬機器上安裝 Docker 之後,請繼續進行本文中的步驟。

安裝 CNI 外掛程式和 jq

Azure CNI 外掛程式會維持為 GitHub 專案,您可從專案的 GitHub 頁面進行下載。 在本文中,您會在虛擬機器內下載 CNI 外掛程式存放庫,然後安裝並設定外掛程式。

如需 Azure CNI 外掛程式的詳細資訊,請參閱 Microsoft Azure 容器的網路功能

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. 選取 [vm-1]

  3. 在 [概觀] 頁面的 [vm-1] 中,選取 [連線],然後選取 [Bastion]

  4. 輸入使用者名稱和密碼,這是您在先前步驟中部署虛擬機器時建立的使用者名稱和密碼。

  5. 選取 Connect

  6. 使用下列範例,將 CNI 外掛程式下載並解壓縮至虛擬機器中的暫存資料夾:

    Invoke-WebRequest -Uri https://github.com/Azure/azure-container-networking/archive/refs/heads/master.zip -OutFile azure-container-networking.zip
    
    Expand-Archive azure-container-networking.zip -DestinationPath azure-container-networking
    
  7. 若要安裝 CNI 外掛程式,請變更為 CNI 外掛程式資料夾 (在先前步驟中下載) 的指令碼目錄。 安裝指令碼命令需要 CNI 外掛程式的版本號碼。 在本文撰寫當下,最新版本為 v1.4.39。 若要取得外掛程式或先前版本的最新版本號碼,請參閱版本

    cd .\azure-container-networking\azure-container-networking-master\scripts\
    
    .\Install-CniPlugin.ps1 v1.4.39
    
  8. CNI 外掛程式隨附外掛程式的內建網路設定檔。 使用下列範例將檔案複製到網路設定目錄:

    Copy-Item -Path "c:\k\azurecni\bin\10-azure.conflist" -Destination "c:\k\azurecni\netconf"
    

安裝 jq

使用 Azure CNI 外掛程式建立容器的指令碼需要應用程式 jq。 如需詳細資訊和下載位置,請參閱下載 jq

  1. 在虛擬機器中開啟網頁瀏覽器,並下載jq 應用程式。

  2. 此下載項目是應用程式的獨立可執行檔。 將可執行檔 jq-win64.exe 複製到 C:\Windows 目錄。

建立測試容器

  1. 若要使用 CNI 外掛程式啟動容器,您必須使用外掛程式隨附的特殊指令碼來建立並啟動容器。 下列範例會使用 CNI 外掛程式指令碼建立 Windows Server 容器:

    cd .\azure-container-networking\azure-container-networking-master\scripts\
    .\docker-exec.ps1 vnetdocker1 default mcr.microsoft.com/windows/servercore/iis add
    

    容器第一次下載映像時可能需要幾分鐘的時間。 當容器啟動並初始化網路時會中斷 Bastion 連線。 請稍候幾秒鐘,再重新建立連線。

  2. 若要確認容器已收到您先前設定的 IP 位址,請連線至容器並檢視 IP:

    docker exec -it vnetdocker1 powershell
    
  3. 使用下列範例中的 ipconfig 命令,確認 IP 位址已指派給容器:

    ipconfig
    

    測試容器 PowerShell 提示字元中 ipconfig 輸出的螢幕快照。

  4. 結束容器,並關閉與 vm-1 的 Bastion 連線。

清除資源

當您完成使用您所建立的資源時,您可以刪除資源群組及其所有資源:

  1. 在 Azure 入口網站中,搜尋並選取 [資源群組]。

  2. 在 [資源群組] 頁面上,選取 [test-rg] 資源群組。

  3. 在 [test-rg] 頁面上,選取 [刪除資源群組]

  4. 在 [輸入資源組名] 中輸入 test-rg 以確認刪除,然後選取 [刪除]。

下一步

在本文中,您已了解如何安裝 Azure CNI 外掛程式並建立測試容器。

如需 Azure 容器網路功能和 Azure Kubernetes Service 的詳細資訊,請參閱: