共用方式為


部署租用戶工作負載的必要條件

本指南說明建立下列項目的必要條件:

  • 虛擬網路功能 (VNF) 工作負載的虛擬機器 (VM)。
  • 雲端原生網路功能 (CNF) 工作負載的連接點 Kubernetes 叢集部署。

租用戶工作負載部署流程的圖表。

網路必要條件

您必須根據工作負載需求建立各種網路。 下列考量清單並不詳盡。 請洽詢適當的支援小組以取得協助。

  • 判斷支援工作負載所需的網路類型:
    • 第 3 層 (L3) 網路需要 VLAN 和子網路指派。 子網路必須夠大,才能支援每個 VM 的 IP 指派。 平台會保留前三個可用的 IP 位址以供內部使用。 例如,若要支援六個 VM,子網路的最小 CIDR 是 /28 (14 個可用位址 - 3 個保留位址 = 11 個可用位址)。
    • 第 2 層 (L2) 網路只需要單一 VLAN 指派。
    • 主幹網路需要指派多個 VLAN。
  • 決定每種類型的網路,您需要多少個。
  • 決定每個網路的 MTU 大小 (上限為 9,000)。
  • 決定每個網路的 BGP 對等互連資訊,以及網路是否需要彼此交談。 您應該將需要彼此交談的網路分組為相同的 L3 隔離網域,因為每個 L3 隔離網域都可以支援多個 L3 網路。
  • 平台會提供一個 Proxy,以允許您的 VM 觸達其他外部端點。 建立 cloudservicesnetwork 執行個體需要端點成為 Proxy,因此請收集端點清單。 您可以在網路建立後修改端點清單。

建立隔離網域

隔離網域可讓裝載於相同機架 (機架內部通訊) 或不同機架 (機架間通訊) 的工作負載進行通訊。 您可以在這裡找到建立隔離網域的詳細資訊。

為租用戶工作負載建立網路

下列各節描述如何建立網路:

  • 第 2 層網路
  • 第 3 層網路
  • 主幹網路

建立 L2 網路

如有必要,為您的工作負載建立 L2 網路。 您可以針對每個必要的 L2 網路重複這些指示。

收集所建立 L2 隔離網域的資源識別碼,以設定此網路的 VLAN。

  az networkcloud l2network create --name "<YourL2NetworkName>" \
    --resource-group "<YourResourceGroupName>" \
    --subscription "<YourSubscription>" \
    --extended-location name="<ClusterCustomLocationId>" type="CustomLocation" \
    --location "<ClusterAzureRegion>" \
    --l2-isolation-domain-id "<YourL2IsolationDomainId>"

建立 L3 網路

如有必要,為您的工作負載建立 L3 網路。 針對每個必要的 L3 網路重複這些指示。

您需要:

  • 您要為此網路設定 VLAN 所建立的 L3 隔離網域的 resourceID 值。
  • ipv4-connected-prefix 值,其必須符合位於 L3 隔離網域的 i-pv4-connected-prefix 值。
  • ipv6-connected-prefix 值,其必須符合位於 L3 隔離網域的 i-pv6-connected-prefix 值。
  • ip-allocation-type 值,其可以是 IPv4IPv6DualStack (預設值)。
  • vlan 值,其必須符合位於 L3 隔離網域的值。
  az networkcloud l3network create --name "<YourL3NetworkName>" \
    --resource-group "<YourResourceGroupName>" \
    --subscription "<YourSubscription>" \
    --extended-location name="<ClusterCustomLocationId>" type="CustomLocation" \
    --location "<ClusterAzureRegion>" \
    --ip-allocation-type "<YourNetworkIpAllocation>" \
    --ipv4-connected-prefix "<YourNetworkIpv4Prefix>" \
    --ipv6-connected-prefix "<YourNetworkIpv6Prefix>" \
    --l3-isolation-domain-id "<YourL3IsolationDomainId>" \
    --vlan <YourNetworkVlan>

建立主幹網路

如有必要,為您的 VM 建立主幹網路。 針對每個必要的主幹網路重複這些指示。

針對您稍早建立的 L2 和 L3 隔離網域,收集其 resourceId 值以設定此網路的 VLAN。 您可以視需要包含多個 L2 和 L3 隔離網域。

  az networkcloud trunkednetwork create --name "<YourTrunkedNetworkName>" \
    --resource-group "<YourResourceGroupName>" \
    --subscription "<YourSubscription>" \
    --extended-location name="<ClusterCustomLocationId>" type="CustomLocation" \
    --location "<ClusterAzureRegion>" \
    --interface-name "<YourNetworkInterfaceName>" \
    --isolation-domain-ids \
      "<YourL3IsolationDomainId1>" \
      "<YourL3IsolationDomainId2>" \
      "<YourL2IsolationDomainId1>" \
      "<YourL2IsolationDomainId2>" \
      "<YourL3IsolationDomainId3>" \
    --vlans <YourVlanList>

建立雲端服務網路

若要建立運算子連接點虛擬機器 (VM) 或運算子連接點 Kubernetes 叢集,您必須擁有雲端服務網路。 若沒有此網路,您就無法建立 VM 或叢集。

雖然雲端服務網路會自動啟用對基本平台端點的存取,但如果您的應用程式需要其他端點 (例如 docker.io),您就需要予以新增。 設定雲端服務網路 Proxy 是確保成功連線至所需端點的重要步驟。 若要達成此目的,您可以使用 --additional-egress-endpoints 參數,在初始建立期間將輸出端點新增至雲端服務網路,或做為更新。 雖然 URL 端點的萬用字元可能很方便,但基於安全性理由,不建議使用。 例如,如果您想要將 Proxy 設定為允許從裝載在 docker.io 外的任何存放庫提取映像,您可以將 .docker.io 指定為端點。

輸出端點必須符合 RFC 1034、RFC 1035 和 RFC 1123 中所述的網域名稱結構和主機名稱規格。 有效的網域名稱包括英數位元、連字號 (不在開頭或結尾),而且可有以點分隔的子網域。 端點可以是單一 FQDN 或子網域 (具有 .的網域前置詞)。 以下一些範例示範網域和主機名稱的合規命名慣例。

  • contoso.com:基底網域,在 .com 最上層網域之下做為第二層網域提供。
  • sales.contoso.com:contoso.com 的子網域,在 .com 最上層網域之下做為第三層網域提供。
  • web-server-1.contoso.com:特定網頁伺服器的主機名稱,使用連字號來分隔字組和數字。
  • api.v1.contoso.com:核定基底網域 contoso.com 上方的兩個子網域 (v1api)。
  • .api.contoso.comapi.contoso.com 之下任何子網域的萬用字元,涵蓋多個第三層網域。
  az networkcloud cloudservicesnetwork create --name "<YourCloudServicesNetworkName>" \
    --resource-group "<YourResourceGroupName >" \
    --subscription "<YourSubscription>" \
    --extended-location name="<ClusterCustomLocationId >" type="CustomLocation" \
    --location "<ClusterAzureRegion>" \
    --additional-egress-endpoints "[{\"category\":\"<YourCategory >\",\"endpoints\":[{\"<domainName1 >\":\"< endpoint1 >\",\"port\":<portnumber1 >}]}]"

設定雲端服務網路之後,您可以使用它來建立 VM 或叢集,以連線到您指定的輸出端點。 請記住,Proxy 只能搭配 HTTPS 運作。

注意

若要確保可以正確提取 VNF 映像,請確定 ACR URL 位於您要與運算子連接點虛擬機器搭配使用的雲端服務網路的輸出允許清單中。

此外,如果您的 ACR 已啟用專用資料端點,您必須將所有新的資料端點新增至輸出允許清單。 若要尋找 ACR 的所有可能端點,請遵循這裡的指示。

使用 Proxy 觸達虛擬機器外部

使用此雲端服務網路建立運算子連接點 VM 或運算子連接點 Kubernetes 叢集之後,您必須另外在 VM 內設定適當的環境變數,以使用租用戶 Proxy 並觸達虛擬機器外部。 如果您需要存取虛擬機器外部的資源,例如管理套件或安裝軟體,此租用戶 Proxy 很有用。

若要使用 Proxy,您必須設定下列環境變數:

export HTTPS_PROXY=http://169.254.0.11:3128
export https_proxy=http://169.254.0.11:3128

設定 Proxy 環境變數之後,您的虛擬機器就能夠觸達已設定的輸出端點。

注意

由於使用 Proxy 存取虛擬機器外部的資源時的安全理由,因此不支援 HTTP。 管理套件或在此雲端服務網路的運算子連接點 VM 或運算子連接點 Kubernetes 叢集上安裝軟體時,必須使用 HTTPS 來保護通訊。

重要

使用 Proxy 時,正確設定 no_proxy 環境變數也很重要。 此變數可以用來指定不應該透過 Proxy 存取的網域或 IP 位址。 如果未正確設定,則在存取 Kubernetes API 伺服器或叢集 IP 等服務可能會導致問題。 請務必在 no_proxy 變數中包含 Kubernetes API 伺服器的 IP 位址或網域名稱,以及任何叢集 IP 位址。

連接點 Kubernetes 叢集可用性區域

建立連接點 Kubernetes 叢集時,您可以將叢集排程到特定機架上,或將其散發在多個機架上。 這項技術可以改善資源使用率和容錯。

如果您在建立連接點 Kubernetes 叢集時未指定區域,Azure 運算子連接點平台會自動實作預設的反親和性規則,以將 VM 分散於機架和裸機節點,且不提供保證。 此規則也是旨在防止在已有 VM 來自相同叢集的節點上排程叢集 VM,但這是一種盡力而為的方法,並且無法做出保證。

若要取得 Azure 運算子連接點執行個體中可用區域的清單,您可以使用下列命令:

    az networkcloud cluster show \
      --resource-group <Azure Operator Nexus on-premises cluster resource group> \
      --name <Azure Operator Nexus on-premises cluster name> \
      --query computeRackDefinitions[*].availabilityZone