共用方式為


快速入門:操作員和容器化網路功能 (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}

為站台網路服務建立使用者指派的受控識別

  1. 將下列 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
    
  2. 發出下列命令,以開始部署使用者指派的受控識別。

    az deployment group create --name prerequisites --resource-group ${resourceGroup}  --template-file prerequisites.bicep
    
  3. 指令碼會建立受控識別。

擷取受控識別的資源識別碼

  1. 執行下列命令來尋找所建立受控識別的資源識別碼。

    az deployment group list -g ${resourceGroup} | jq -r --arg Deployment prerequisites '.[] | select(.name == $Deployment).properties.outputs.managedIdentityId.value'
    
  2. 複製並儲存輸出,也就是資源識別。 當您建立站台網路服務時,您需要此輸出。

更新站台網路服務 (SNS) 權限

若要執行這些工作,您需要操作員和網路功能定義發行者資源群組中的「擁有者」或「使用者存取管理員」角色。 您在先前的工作中建立了操作員資源群組。 網路功能定義發行者資源群組已在快速入門:將 Nginx 容器發佈為容器化網路功能 (CNF) 中所建立,並在 input.json 檔案中命名為 nginx-publisher-rg。

在先前的步驟中,您已在參考資源群組內建立標示為 identity-for-nginx-sns 的受控識別。 此身分識別在部署站台網路服務 (SNS) 方面扮演著重要角色。 請遵循下一節中的步驟,將身分識別「參與者」角色授與給「發行者資源群組」和「受控識別操作員」角色。 透過此身分識別,站台網路服務 (SNS) 會取得所需的權限。

將發行者資源群組上的參與者角色授與給受控識別

  1. 存取 Azure 入口網站,並開啟發佈網路功能定義時建立的發行者資源群組。

  2. 在資源群組的側邊功能表中,選取 [存取控制 (IAM)]

  3. 選擇 [新增角色指派]

    顯示發行者資源群組新增角色指派的螢幕擷取畫面。

  4. 在 [特殊權限管理員角色] 下,選取 [參與者],然後選取 [下一步] 以繼續。

    顯示已選取參與者的特殊權限系統管理員角色的螢幕擷取畫面。

  5. 選取 [受控身分識別]

  6. 選擇 [+ 選取成員],然後找到並選擇使用者指派的受控識別 identity-for-nginx-sns

    顯示具有使用者指派受控識別的指定受控識別的螢幕擷取畫面。

透過自訂位置向受控識別授與參與者角色

  1. 存取 Azure 入口網站,並開啟操作員資源群組 operator-rg

  2. 在該資源群組的側邊功能表中,選取 [存取控制 (IAM)]

  3. 選擇 [新增角色指派]

    顯示發行者資源群組將角色指派新增至自訂位置的螢幕擷取畫面。

  4. 在 [特殊權限管理員角色] 下,選取 [參與者],然後選取 [下一步] 以繼續。

    顯示已選取參與者的特殊權限系統管理員角色的螢幕擷取畫面。

  5. 選取 [受控身分識別]

  6. 選擇 [+ 選取成員],然後找到並選擇使用者指派的受控識別 identity-for-nginx-sns

    顯示具有使用者指派受控識別的指定受控識別的螢幕擷取畫面。

向自己授與受控識別運算子角色

  1. 移至 Azure 入口網站搜尋受控識別

  2. 從 [受控識別] 的清單中選取 identity-for-nginx-sns

  3. 選取側邊功能表的 [存取控制 (IAM)]

  4. 選擇 [新增角色指派]

    顯示 nginx SNS 新增角色指派身分識別的螢幕擷取畫面。

  5. 選取 [受控識別運算子] 角色,然後選取 [下一步] 以繼續。

    顯示已選取受控識別操作員的新增角色指派螢幕擷取畫面。

  6. 選取 [受控身分識別]

  7. 選取 [+ 選取成員],然後瀏覽至名為 identity-for-nginx-sns 的使用者指派的受控識別,然後繼續進行指派。

    顯示具有使用者指派受控識別的指定受控識別的螢幕擷取畫面。

  8. 選取 [檢閱並指派]

完成這些文章中所述的所有工作,可確保站台網路服務 (SNS) 具有在指定 Azure 環境中有效運作的必要權限。

下一步