你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在扩展区域中创建已启用 Arc 的 AKS 群集

本文介绍如何在扩展区域中创建已启用 Arc 的 AKS 群集,这有助于通过 Arc 部署 PaaS 服务。请参阅 什么是 Azure 扩展区域? | 当前支持的 PaaS 工作负荷的服务。

先决条件

入门指南

如果你已经熟悉了主题,则可以跳过此段落。 下面是在继续创建之前可能需要阅读的重要主题:

设置

安装以下 Azure CLI 扩展。

az extension add --name connectedk8s  --upgrade --yes
az extension add --name k8s-extension --upgrade --yes
az extension add --name customlocation --upgrade --yes

注册所需的命名空间。

az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az provider register --namespace Microsoft.App --wait
az provider register --namespace Microsoft.OperationalInsights --wait

在扩展区域中创建已启用 Arc 的 AKS 群集

在继续在扩展区域中部署 PaaS 工作负荷之前,必须在目标扩展区域中创建已启用 Arc 的 AKS 群集。 以下脚本有助于执行此作并简化支持的 PaaS 服务的部署(请参阅本文末尾的相关内容,了解有关这些服务的详细信息)。

注释

请确保使参数保持一致,并将其正确传递到后续脚本。

# Create an Arc-enabled AKS cluster on an edge zone
function createArcEnabledAksOnEz {
    param(
        [string] $SubscriptionId,
        [string] $AKSClusterResourceGroupName,
        [string] $location = "westus",
        [string] $AKSName,
        [string] $edgeZone,
        [int] $nodeCount = 2,
        [string] $vmSize = "standard_nv12ads_a10_v5",
        [string] $ArcResourceGroupName,
        [switch] $Debug
    )
    # Set the subscription
    az account set --subscription $SubscriptionId
    
    # Login to Azure
    az provider register --namespace Microsoft.AzureArcData
    
    # Create new resource group
    az group create --name $AKSClusterResourceGroupName --location $location

    # Create new cluster and deploy in edge zone
    Write-Output "Creating AKS cluster in edge zone..." 
    az aks create -g $AKSClusterResourceGroupName -n $AKSName --location $location --edge-zone $edgeZone --node-count $nodeCount -s $vmSize --generate-ssh-keys 
    
    # Create new resource group for Arc
    az group create --name $ArcResourceGroupName --location eastus

    # Download cluster credentials and get AKS cluster context
    az aks get-credentials --resource-group $AKSClusterResourceGroupName --name $AKSName --overwrite-existing

    # Connect the AKS cluster to Arc
    $CLUSTER_NAME = "$ArcResourceGroupName-cluster" # Name of the connected cluster resource
    Write-Output "Connecting AKS cluster to Azure Arc..."
    az connectedk8s connect --resource-group $ArcResourceGroupName --name $CLUSTER_NAME

    # DEBUG: Test connection to Arc
    if ($Debug) {
        Write-Debug az connectedk8s show --resource-group $ArcResourceGroupName --name $CLUSTER_NAME
    }
}


createArcEnabledAksOnEz -SubscriptionId "ffc37441-49e9-4291-a520-0b2d4972bb99" `
                        -AKSClusterResourceGroupName "t1" `
                        -location "westus" `
                        -AKSName "my-aks-cluster" `
                        -edgeZone "losangeles" `
                        -nodeCount 2 `
                        -vmSize "standard_nv12ads_a10_v5" `
                        -ArcResourceGroupName "t2"

清理资源

不再需要时,请使用 az group delete 命令删除 my-aks-cluster 资源组及其包含的所有资源。

az group delete --name my-aks-cluster