對 AKS 叢集進行委員會
Azure Private 5G Core 服務中的封包核心實例會在已啟用 Arc 的 Azure Kubernetes Service (AKS) 叢集上執行, (ASE) 裝置。 本操作指南說明如何在 ASE 上委派 AKS 叢集,以便準備好部署封包核心實例。
必要條件
- 完成部署私人行動網路的必要工作。
- 您需要 Azure Stack Edge 資源資源群組的擁有者許可權。
注意
記下 Azure Stack Edge 的資源群組。 在此程式中建立的 AKS 叢集和自訂位置必須屬於此資源群組。
輸入迷你Shell 會話
在此程式期間,您必須在 Azure Stack Edge 上執行 minishell 命令。 您必須使用網路上具有 ASE 管理埠存取權的 Windows 電腦。 您應該能夠檢視 ASE 本機 UI,以確認您有存取權。
提示
若要存取本機 UI,請參閱 教學課程:使用 GPU 連線至 Azure Stack Edge Pro。
在您的電腦上啟用 WinRM
下列程式會使用 PowerShell,且需要在電腦上啟用 WinRM。 以系統管理員模式從 PowerShell 視窗執行下列命令:
winrm quickconfig
您的電腦上可能已經啟用 WinRM,因為您只需要執行一次。 請確定您的網路連線設定為 [私人] 或 [網域] (不是 [公用]) ,並接受任何變更。
啟動迷你Shell 會話
從 PowerShell 視窗中,輸入 ASE 管理 IP 位址 (包括引號,例如
"10.10.5.90"
) :$ip = "*ASE IP address*" $sessopt = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck $minishellSession = New-PSSession -ComputerName $ip -ConfigurationName "Minishell" -Credential ~\EdgeUser -UseSSL -SessionOption $sessopt
在提示字元中,輸入您的 Azure Stack Edge 密碼。 請略過下列訊息:
WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration.
您現在已設定迷你shell 會話,以在下一個步驟中啟用您的Azure Kubernetes Service。
提示
如果有網路變更,會話可能會中斷。 執行 Get-PSSession
以檢視會話的狀態。 如果它仍然已連線,您仍應該能夠執行 minishell 命令。 如果中斷或中斷連線,請執行 Remove-PSSession
以在本機移除會話,然後啟動新的會話。
在 Azure Stack Edge 裝置上啟用Azure Kubernetes Service
在 PowerShell 提示字元中執行下列命令,指定您在 完成部署私人行動網路的必要條件工作中識別的物件識別碼。
Invoke-Command -Session $minishellSession -ScriptBlock {Set-HcsKubeClusterArcInfo -CustomLocationsObjectId *object ID*}
Invoke-Command -Session $minishellSession -ScriptBlock {Enable-HcsAzureKubernetesService -f}
執行這些命令之後,您應該會在本機 UI 中看到更新的選項 – Kubernetes 會變成 Kubernetes (Preview) ,如下圖所示。
此外,如果您移至Azure 入口網站並流覽至Azure Stack Edge資源,您應該會看到Azure Kubernetes Service選項。 您將在[啟動叢集] 中設定Azure Kubernetes Service,並設定 Arc。
啟用高效能網路功能
Azure Private 5G Core 需要高效能網路 (HPN) 才能使用迷你Shell 命令在 Azure Stack Edge 上啟用。 您可以繼續使用您在 輸入迷你Shell 會話中啟動的迷你Shell 會話。 執行以下命令:
Invoke-Command -Session $minishellSession -ScriptBlock {Set-HcsNumaLpMapping -UseSkuPolicy}
視需要等候電腦重新開機, (大約 5 分鐘) 。
設定進階網路功能
您現在必須在這些交換器上設定虛擬交換器和虛擬網路。 您將使用 Azure Stack Edge 本機 UI 的 [ 進階網路 ] 區段來執行這項工作。
您可以在此頁面輸入所有設定,再選取底部的 [ 套用 ] 一次全部套用。
設定三個虛擬交換器。 下一個步驟之前,必須有一個與每個埠相關聯的虛擬交換器。 如果您有其他虛擬網路功能 (VNFs) 設定,則虛擬交換器可能已經存在。
選取 [新增虛擬交換器 ],然後針對每個交換器填入適當的側邊面板,然後選取 [ 修改 ] 以儲存該組態。
- 在埠上建立虛擬交換器,該埠應該已啟用計算, (管理埠) 。 我們建議使用 vswitch-portX格式,其中 X 是埠的數目。 例如,在 埠 3 上建立 vswitch-port3 。
- 在埠 5 上建立虛擬交換器,其名稱 為 vswitch-port5。
- 在埠 6 上建立虛擬交換器,其名稱為 vswitch-port6。
您現在應該會看到類似下圖的內容:
建立代表下列介面的虛擬網路 (您在配置 子網和 IP 位址) 配置子網和 IP 位址 :
- 控制平面存取介面
- 使用者平面存取介面
- 使用者平面資料介面 (s)
您可以自行命名這些網路,但名稱必須符合您在部署 Azure Private 5G Core 時在Azure 入口網站中設定的名稱。 例如,您可以使用N2、N3和N6-DN1、N6-DN2、N6-DN3 (搭配多個資料網路部署的 5G 部署, (DN) ;只有N6用於單一 DN 部署) 。 下列範例適用于 5G 多 DN 部署。
執行下列程式三次,針對每個補充資料網路執行一次, (因此,如果您有三個數據網路) ,則總共有五次:
- 選取 [新增虛擬網路 ],然後填入側邊面板:
- 虛擬交換器:針對 N2 和 N3 選取 vswitch-port5 ,然後針對 N6-DN1、N6-DN2 和 N6-DN3 選取 vswitch-port6 。
- 名稱: N2、 N3、 N6-DN1、 N6-DN2或 N6-DN3。
- VLAN:0
- 子網路遮罩 和 閘道 必須符合埠的外部值。
- 例如, 255.255.255.0 和 10.232.44.1
- 如果存取介面與 gNB/RAN 之間沒有閘道,請使用 gNB/RAN IP 位址作為閘道位址。 如果有一個以上的 gNB 透過交換器連線,請選擇其中一個閘道的 IP 位址。
- 選取 [修改 ] 以儲存此虛擬網路的組態。
- 選取頁面底部的 [ 套 用],然後等候通知 (鈴鐺圖示) 確認已套用設定。 套用設定大約需要 15 分鐘的時間。
- 選取 [新增虛擬網路 ],然後填入側邊面板:
頁面現在看起來應該像下圖:
新增計算和 IP 位址
在本機 Azure Stack Edge UI 中,移至 [Kubernetes (Preview) ] 頁面。 您將設定所有組態,然後套用一次,如同 設定進階網路一樣。
- 在 [計算虛擬交換器] 底下,選取 [修改]。
- 選取管理 vswitch (例如 vswitch-port3)
- 在管理網路上的節點 IP 位址範圍內輸入六個 IP 位址。
- 在服務 IP 位址的範圍內輸入一個 IP 位址,同時在管理網路上。
- 選取面板底部的 [修改 ] 以儲存組態。
- 在[虛擬網路] 底下,從N2、N3、N6-DN1、N6-DN2 和 N6-DN3) 選取虛擬網路 (。 在側邊面板中:
- 啟用 Kubernetes 的虛擬網路,並新增 IP 位址集區。 針對先前收集的適當位址新增一個 IP 位址範圍, (N2、N3、N6-DN1、N6-DN2 或 N6-DN3。 例如, 10.10.10.20-10.10.10.20。
- 針對每個 N2、N3、N6-DN1、N6-DN2 和 N6-DN3 虛擬網路重複。
- 選取面板底部的 [修改 ] 以儲存組態。
- 選取頁面底部的 [ 套 用],並等候套用設定。 套用設定大約需要 15 分鐘的時間。
頁面現在看起來應該像下圖:
啟動叢集並設定 Arc
存取Azure 入口網站,並移至在Azure 入口網站中建立的Azure Stack Edge資源。
如果您要在 Azure Stack Edge 上執行其他 VM,建議您立即停止它們,並在部署叢集之後再次啟動它們。 叢集需要存取執行 VM 的特定 CPU 資源可能已經使用。
若要部署叢集,請選取 [Kubernetes] 選項,然後選取 [ 新增 ] 按鈕以設定叢集。
針對 [ 節點大小],選取 [Standard_F16s_HPN]。
確定已選取 [已啟用 Arc 的 Kubernetes] 核取方塊。
已啟用 Arc 的 Kubernetes 服務會自動建立在與 Azure Stack Edge 資源相同的資源群組中。 如果您的 Azure Stack Edge 資源群組不在支援 Azure Private 5G Core 的區域,您必須使用 [變更 ] 連結來變更區域。
請完成提示以設定服務。
Kubernetes 叢集的建立大約需要 20 分鐘的時間。 在建立期間, Azure Stack Edge 資源上可能會顯示重大警示。 此警示預期會消失,而且應該會在幾分鐘後消失。
部署之後,入口網站應該會在 [概觀] 頁面上顯示 Kubernetes 服務狀況良好 。
設定 kubectl 存取
您需要 kubectl 存取權,以確認叢集已成功部署。 如需叢集的唯讀 kubectl 存取權,您可以從 ASE 本機 UI 下載 kubeconfig 檔案。 在 [裝置] 底下,選取 [下載設定]。
下載的檔案稱為 config.json。 此檔案具有描述 Pod 和檢視記錄的許可權,但無法存取 具有 kubectl exec的 Pod。
Azure Private 5G Core 部署會使用 核心 命名空間。 如果您需要收集診斷,您可以使用下列 minishell 命令,下載具有核心命名空間完整存取權的kubeconfig檔案。
- 建立命名空間、下載 kubeconfig 檔案,並使用它來授與命名空間的存取權:
Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesNamespace -Namespace "core"} Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesUser -UserName "core"} | Out-File -FilePath .\kubeconfig-core.yaml Invoke-Command -Session $minishellSession -ScriptBlock {Grant-HcsKubernetesNamespaceAccess -Namespace "core" -UserName "core"}
- 如果您需要稍後擷取已儲存 的 kubeconfig 檔案:
Invoke-Command -Session $miniShellSession -ScriptBlock { Get-HcsKubernetesUserConfig -UserName "core" }
如需詳細資訊,請參閱 透過 Kubernetes RBAC 設定叢集存取。
設定入口網站存取權
在 Azure 入口網站 中開啟您的 Azure Stack Edge資源。 移至 [啟動叢集]中顯示的 [Azure Kubernetes Service] 窗格 (,並設定 Arc) ,然後選取 [管理] 連結以開啟[Arc] 窗格。
使用 Kubernetes 資源中的選項探索叢集, (預覽) 功能表:
您一開始會看到登入要求方塊。 用來登入的權杖是從設定 kubectl 存取中的本機 UI 擷取的kubeconfig檔案取得。 有一個字串前面加上 token: 接近 kubeconfig 檔案的結尾。 將此字串複製到入口網站中的方塊 (確保您沒有複製分行符號) ,然後選取 [ 登入]。
您現在可以從 [工作負載] 窗格檢視叢集上執行內容的相關資訊 – 以下是工作負載窗格中 的 範例:
驗證叢集設定
您應該使用從設定kubectl 存取中從 UI 下載的kubeconfig來執行下列kubectl命令,以確認 AKS 叢集已正確設定:
kubectl get nodes
此命令應該會傳回兩個節點,一個名為 nodepool-aaa-bbb ,另一個名為 target-cluster-control-plane-ccc。
若要檢視所有執行中的 Pod,請執行:
kubectl get pods -A
此外,您的 AKS 叢集現在應該可從入口網站中的 Azure Stack Edge 資源看見。
收集 Kubernetes 延伸模組的變數
收集下表中的每個值。
值 | 變數名稱 |
---|---|
部署 Azure 資源的 Azure 訂用帳戶識別碼。 | SUBSCRIPTION_ID |
部署 AKS 叢集的資源群組名稱。 您可以使用Azure 入口網站的 [Azure Kubernetes Service] 窗格中的 [管理] 按鈕來找到此專案。 | RESOURCE_GROUP_NAME |
AKS 叢集資源的名稱。 您可以使用Azure 入口網站的 [Azure Kubernetes Service] 窗格中的 [管理] 按鈕來找到此專案。 | RESOURCE_NAME |
部署 Azure 資源的區域。 這必須符合將部署行動網路的區域,這必須是 AP5GC:EastUS或WestEurope支援的其中一個區域。 此值必須是區域的程式碼名稱;如需支援的區域清單,請參閱依區域提供的產品。 | 位置 |
要為 AKS 叢集建立的 自訂位置 資源名稱。 這個值必須以英數位元開頭和結尾,而且必須只包含英數位元或 - . 。 |
CUSTOM_LOCATION |
安裝 Kubernetes 擴充功能
Azure Private 5G Core 私人行動網路需要自訂位置,以及您需要在 Azure Cloud Shell中使用 Azure CLI 設定的特定 Kubernetes 擴充功能。
提示
本節中的命令需要 k8s-extension
安裝 Azure CLI 工具的 和 customlocation
擴充功能。 如果您還沒有它們,當您執行需要這些命令的命令時,會出現提示來安裝這些命令。 如需自動安裝 擴充功能的詳細資訊,請參閱使用和管理 Azure CLI 的擴充 功能。
使用 Azure Cloud Shell登入 Azure CLI。
使用部署的必要值來設定下列環境變數:
export SUBSCRIPTION_ID=<subscription ID> export RESOURCE_GROUP_NAME=<resource group name> export LOCATION=<deployment region, for example eastus> export CUSTOM_LOCATION=<custom location for the AKS cluster> export RESOURCE_NAME=<resource name> export TEMP_FILE=./tmpfile
準備殼層環境:
az account set --subscription "$SUBSCRIPTION_ID"
建立網路函式操作員 Kubernetes 擴充功能:
cat > $TEMP_FILE <<EOF { "helm.versions": "v3", "Microsoft.CustomLocation.ServiceAccount": "azurehybridnetwork-networkfunction-operator", "meta.helm.sh/release-name": "networkfunction-operator", "meta.helm.sh/release-namespace": "azurehybridnetwork", "app.kubernetes.io/managed-by": "helm", "helm.release-name": "networkfunction-operator", "helm.release-namespace": "azurehybridnetwork", "managed-by": "helm" } EOF az k8s-extension create \ --name networkfunction-operator \ --cluster-name "$RESOURCE_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --cluster-type connectedClusters \ --extension-type "Microsoft.Azure.HybridNetwork" \ --auto-upgrade-minor-version "true" \ --scope cluster \ --release-namespace azurehybridnetwork \ --release-train preview \ --config-settings-file $TEMP_FILE
建立 Packet Core Monitor Kubernetes 擴充功能:
az k8s-extension create \ --name packet-core-monitor \ --cluster-name "$RESOURCE_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --cluster-type connectedClusters \ --extension-type "Microsoft.Azure.MobileNetwork.PacketCoreMonitor" \ --release-train preview \ --auto-upgrade true
建立自訂位置:
az customlocation create \ -n "$CUSTOM_LOCATION" \ -g "$RESOURCE_GROUP_NAME" \ --location "$LOCATION" \ --namespace azurehybridnetwork \ --host-resource-id "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Kubernetes/connectedClusters/$RESOURCE_NAME" \ --cluster-extension-ids "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Kubernetes/connectedClusters/$RESOURCE_NAME/providers/Microsoft.KubernetesConfiguration/extensions/networkfunction-operator"
您應該會看到新的自訂位置顯示為指定資源群組內Azure 入口網站中的資源。 kubectl get pods -A
使用 命令 (搭配kubeconfig檔案的存取權) 也應該顯示對應至已安裝之延伸模組的新 Pod。 azurehybridnetwork命名空間中應該有一個 Pod,另一個在packet-core-monitor命名空間中。
復原
如果您在 Azure Stack Edge 設定中發生錯誤,您可以使用入口網站來移除 AKS 叢集。 然後,您可以透過本機 UI 修改設定,或使用本機 UI 中的 [ 裝置重設 ] 刀鋒視窗執行完整重設,然後重新開機此程式。
下一步
您的 Azure Stack Edge 裝置現在已可供 Azure 私人 5G 核心使用。 下一個步驟是收集部署私人網路所需的資訊。