快速入門:操作員和容器化網路功能 (CNF) 的必要條件
本快速入門包含操作員和容器化網路功能 (CNF) 的必要工作。 雖然您可以在 NSD (網路服務定義) 內自動執行這些工作,但在本快速入門中,動作會手動執行。
注意
本文中呈現的工作可能需要一些時間才能完成。
權限
您需要的 Azure 訂用帳戶必須具有現有資源群組,您在其中具有 [參與者] 角色和 [使用者存取系統管理員] 角色。
或者,AOSM CLI 延伸模組可以為您建立資源群組,在此情況下,您需要此訂用帳戶的 [參與者] 角色。 如果您使用這項功能,則您必須將具有這個新建立資源群組範圍的 [使用者存取系統管理員] 角色新增至使用者。
您也需要網路功能定義發行者資源群組中的 [使用者存取系統管理員] 角色。 網路功能定義發行者資源群組已在快速入門:將 Nginx 容器發佈為容器化網路功能 (CNF) 中所使用。 檢查 input-cnf-nfd.jsonc 檔案中的資源群組名稱。
設定環境變數
視您的特定環境需要調整環境變數設定和參考。 例如,在 Windows PowerShell 中,您會設定環境變數,如下所示:
$env:ARC_RG="<my rg>"
若要使用環境變數,您會將其參考為 $env:ARC_RG
。
export resourceGroup=operator-rg
export location=<region>
export clusterName=<replace with clustername>
export customlocationId=${clusterName}-custom-location
export extensionId=${clusterName}-extension
建立資源群組
建立資源群組來裝載您的 Azure Kubernetes Service (AKS) 叢集。 這也是在稍後指南中建立您操作員資源的位置。
az account set --subscription <subscription>
az group create -n ${resourceGroup} -l ${location}
佈建 Azure Kubernetes Service (AKS) 叢集
az aks create -g ${resourceGroup} -n ${clusterName} --node-count 3 --generate-ssh-keys
啟用 Azure Arc
為 Azure Kubernetes Service (AKS) 叢集啟用 Azure Arc。 執行下列命令應該已足夠。 如果您想要深入了解,請參閱在已啟用 Azure Arc 的 Kubernetes 上建立及管理自訂位置。
擷取 AKS 叢集的組態檔
az aks get-credentials --resource-group ${resourceGroup} --name ${clusterName}
建立連線的叢集
建立叢集︰
az connectedk8s connect --name ${clusterName} --resource-group ${resourceGroup}
註冊您的訂用帳戶
向 Microsoft.ExtendedLocation 資源提供者註冊您的訂用帳戶:
az provider register --namespace Microsoft.ExtendedLocation
啟用自訂位置
在叢集上啟用自訂位置:
az connectedk8s enable-features -n ${clusterName} -g ${resourceGroup} --features cluster-connect custom-locations
連線叢集
連線叢集:
az connectedk8s connect --name ${clusterName} -g ${resourceGroup} --location $location
建立延伸模組
建立延伸模組:
az k8s-extension create -g ${resourceGroup} --cluster-name ${clusterName} --cluster-type connectedClusters --name ${extensionId} --extension-type microsoft.azure.hybridnetwork --release-train preview --scope cluster
建立自訂位置
建立自訂位置:
export ConnectedClusterResourceId=$(az connectedk8s show --resource-group ${resourceGroup} --name ${clusterName} --query id -o tsv)
export ClusterExtensionResourceId=$(az k8s-extension show -c $clusterName -n $extensionId -t connectedClusters -g ${resourceGroup} --query id -o tsv)
az customlocation create -g ${resourceGroup} -n ${customlocationId} --namespace "azurehybridnetwork" --host-resource-id $ConnectedClusterResourceId --cluster-extension-ids $ClusterExtensionResourceId
擷取自訂位置值
擷取自訂位置值。 您需要此資訊才能填入站台網路服務 (SNS) 的組態群組值。
在 Azure 入口網站中搜尋自訂位置 (customLocationId) 的名稱,然後選取 [屬性]。 在 [基本資訊] 資訊區域下找出完整的資源識別碼,並尋找欄位名稱識別碼。 下圖提供資源識別碼資訊所在位置的範例。
提示
完整資源識別碼的格式為:/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.extendedlocation/customlocations/{customLocationName}
為站台網路服務建立使用者指派的受控識別
將下列 Bicep 指令碼儲存在本機作為 prerequisites.bicep。
param location string = resourceGroup().location param identityName string = 'identity-for-nginx-sns' resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { name: identityName location: location } output managedIdentityId string = managedIdentity.id
發出下列命令,以開始部署使用者指派的受控識別。
az deployment group create --name prerequisites --resource-group ${resourceGroup} --template-file prerequisites.bicep
指令碼會建立受控識別。
擷取受控識別的資源識別碼
執行下列命令來尋找所建立受控識別的資源識別碼。
az deployment group list -g ${resourceGroup} | jq -r --arg Deployment prerequisites '.[] | select(.name == $Deployment).properties.outputs.managedIdentityId.value'
複製並儲存輸出,也就是資源識別。 當您建立站台網路服務時,您需要此輸出。
更新站台網路服務 (SNS) 權限
若要執行這些工作,您需要操作員和網路功能定義發行者資源群組中的「擁有者」或「使用者存取管理員」角色。 您在先前的工作中建立了操作員資源群組。 網路功能定義發行者資源群組已在快速入門:將 Nginx 容器發佈為容器化網路功能 (CNF) 中所建立,並在 input.json 檔案中命名為 nginx-publisher-rg。
在先前的步驟中,您已在參考資源群組內建立標示為 identity-for-nginx-sns 的受控識別。 此身分識別在部署站台網路服務 (SNS) 方面扮演著重要角色。 請遵循下一節中的步驟,將身分識別「參與者」角色授與給「發行者資源群組」和「受控識別操作員」角色。 透過此身分識別,站台網路服務 (SNS) 會取得所需的權限。
將發行者資源群組上的參與者角色授與給受控識別
存取 Azure 入口網站,並開啟發佈網路功能定義時建立的發行者資源群組。
在資源群組的側邊功能表中,選取 [存取控制 (IAM)]。
選擇 [新增角色指派]。
在 [特殊權限管理員角色] 下,選取 [參與者],然後選取 [下一步] 以繼續。
選取 [受控身分識別]。
選擇 [+ 選取成員],然後找到並選擇使用者指派的受控識別 identity-for-nginx-sns。
透過自訂位置向受控識別授與參與者角色
存取 Azure 入口網站,並開啟操作員資源群組 operator-rg。
在該資源群組的側邊功能表中,選取 [存取控制 (IAM)]。
選擇 [新增角色指派]。
在 [特殊權限管理員角色] 下,選取 [參與者],然後選取 [下一步] 以繼續。
選取 [受控身分識別]。
選擇 [+ 選取成員],然後找到並選擇使用者指派的受控識別 identity-for-nginx-sns。
向自己授與受控識別運算子角色
移至 Azure 入口網站搜尋受控識別。
從 [受控識別] 的清單中選取 identity-for-nginx-sns。
選取側邊功能表的 [存取控制 (IAM)]。
選擇 [新增角色指派]。
選取 [受控識別運算子] 角色,然後選取 [下一步] 以繼續。
選取 [受控身分識別]。
選取 [+ 選取成員],然後瀏覽至名為 identity-for-nginx-sns 的使用者指派的受控識別,然後繼續進行指派。
選取 [檢閱並指派]。
完成這些文章中所述的所有工作,可確保站台網路服務 (SNS) 具有在指定 Azure 環境中有效運作的必要權限。