Share via


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

本指南說明建立的必要條件:

  • 虛擬網路功能 (VNF) 工作負載的虛擬機(VM)。
  • 雲端原生網路功能 (CNF) 工作負載的 Nexus 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 網路重複指示。

您需要:

  • resourceID您為設定此網路 VLAN 而建立的 L3 隔離網域值。
  • ipv4-connected-prefix ,必須符合 i-pv4-connected-prefix L3 隔離定義域中的值。
  • ipv6-connected-prefix ,必須符合 i-pv6-connected-prefix L3 隔離定義域中的值。
  • 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 建立主幹網路。 針對每個必要的主幹網路重複指示。

resourceId收集您稍早建立的 L2 和 L3 隔離網域值,以設定此網路的 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>

建立雲端服務網路

若要建立操作員 Nexus 虛擬機 (VM) 或操作員 Nexus 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:將基底域上方的兩個子域 (v1api) 併入 contoso.com。
  • .api.contoso.com:下 api.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 位於您要與操作員 Nexus 虛擬機搭配使用的雲端服務網路輸出允許清單中。

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

使用 Proxy 連線到虛擬機器外部

使用此雲端服務網路建立操作員 Nexus VM 或操作員 Nexus 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。 管理套件或在此雲端服務網路上的操作員 Nexus VM 或操作員 Nexus Kubernetes 叢集上安裝軟體時,必須使用 HTTPS 來保護通訊。

重要

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

Nexus Kubernetes 叢集可用性區域

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

如果您在建立 Nexus Kubernetes 叢集時未指定區域,Azure 操作員 Nexus 平臺會自動實作預設的反親和性規則,以將 VM 分散到機架和裸機節點,且不保證。 此規則也旨在防止在已擁有相同叢集 VM 的節點上排程叢集 VM,但這是最佳作法,而且無法保證。

若要取得 Azure 操作員 Nexus 實例中可用區域的列表,您可以使用下列命令:

    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