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

适用于扩展区域的 Azure Kubernetes 服务(预览版)

适用于扩展区域的 Azure Kubernetes 服务 (AKS) 提供了一组广泛而复杂的功能,从而能够更轻松地在扩展区域方案中部署和操作完全托管的 Kubernetes 群集。

重要

AKS 预览功能是可选择启用的自助功能。 预览功能是“按现状”和“按可用”提供的,不包括在服务级别协议和有限保证中。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:

什么是 Azure 扩展区域?

Azure 扩展区域是 Azure 的小型占用空间扩展,涵盖地铁、行业中心或特定管辖权地,用于处理低延迟和数据驻留工作负载。 Azure 扩展区域支持虚拟机 (VM)、容器、存储和一组选定的 Azure 服务。 他们可以在靠近最终用户和已批准的数据驻留边界内运行延迟敏感和吞吐量密集型应用程序。

Azure 扩展区域是 Microsoft 全球网络的一部分,它在靠近用户的 Azure 扩展区域运行的应用程序之间提供安全、可靠、高带宽的连接。 扩展区域通过使 Azure 生态系统(访问、用户体验、自动化、安全性等)更接近你或你的管辖权地,解决了低延迟和数据驻留问题。 Azure 扩展区域站点与一个父级 Azure 区域相关联,该区域托管了与扩展区域中运行的服务相关的所有控制平面功能。

扩展区域用例

Azure 扩展区域支持低延迟数据驻留场景。 例如,你可能希望以低延迟远程运行媒体编辑软件,或者出于隐私、法规和合规性原因,希望将应用程序的数据保存在特定地理位置。

下表突出显示了 Azure 扩展区域可提供优势的一些行业和用例:

行业 用例
医疗保健 • 远程病人护理
• 远程临床教育
• 快闪护理和服务
公共基础结构 • 视觉对象检测
• 关键基础结构
• 紧急服务
• 监控与保安
制造 • 机器人实时指挥控制
• 计算机视觉
媒体和游戏 • 游戏和游戏流式传输
• 媒体编辑、流式传输和内容分发
• 混合现实和虚拟桌面基础结构方案的远程渲染
石油和天然气 • 石油和天然气勘探
• 通过人工智能和机器学习进行实时分析与推理
零售 • 数字店内体验
• 联网工作人员

有关详细信息,请参阅 Azure 扩展区域概述

什么是适用于扩展区域的 AKS?

借助适用于扩展区域的 AKS,组织能够满足扩展区域计算的独特需求,同时利用 AKS 的容器业务流程和管理功能,更加轻松地部署和管理扩展区域中托管的应用程序。 与典型的 AKS 部署一样,Azure 平台负责维护 AKS 控制平面并提供基础设施,而组织则保留对运行应用程序的工作器节点的控制。

适用于 Azure 扩展区域的 AKS 部署架构图,显示控制平面部署在 Azure 区域,而代理节点部署在 Azure 扩展区域。

创建适用于扩展区域的 AKS 群集使用经过优化的体系结构,该体系结构经过专门定制,可满足扩展区域应用程序和工作负载的独特需求和要求。 在最近的 Azure 区域中创建、部署和配置群集的控制平面,而附加到群集的代理节点和节点池位于 Azure 扩展区域中。 适用于扩展区域的 AKS 群集中的组件与 Azure 区域中部署的典型群集中的组件相同,可确保保持相同级别的功能和性能。 有关详细信息,请参阅 AKS 的 Kubernetes 核心概念

在 Azure 扩展区域位置中部署群集

在 Azure 扩展区域中部署 AKS 群集类似于其在任何其他区域中的部署方式。 所有资源提供程序都提供一个名为 extendedLocation 的字段,可用于在 Azure 扩展区域中部署资源。 这样就可以精确且有针对性地部署 AKS 群集。

先决条件

  • 订阅需要有权访问目标 Azure 扩展区域位置,然后才能部署适用于扩展区域的 AKS 群集。 此访问权限通过加入过程提供,具体请按照 Azure 扩展区域概述中所述的步骤来操作。
  • 群集必须运行 Kubernetes 1.24 版或更高版本。
  • 用于创建群集的标识应具有适当的的最低权限。 有关 AKS 的访问和标识的详细信息,请参阅 Azure Kubernetes 服务 (AKS) 的访问和标识选项

限制和约束

在 Azure 扩展区域中部署 AKS 群集时,以下限制和约束适用:

  • 适用于扩展区域的 AKS 允许在节点池中最多自动缩放 100 个节点。
  • 在所有 Azure 扩展区域中,最大节点计数为 100。
  • 在 Azure 扩展区域中,仅提供选定的 VM SKU。

使用 extendedLocation 参数在 ARM 模板中指定所需的 Azure 扩展区域。

"extendedLocation": {
    "name": "<extended-zone-id>",
    "type": "EdgeZone",
},

以下 ARM 模板会在 Azure 扩展区域中部署新群集。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.9.1.41621",
      "templateHash": "2637152180661081755"
    }
  },
  "parameters": {
    "clusterName": {
      "type": "string",
      "defaultValue": "myAKSCluster",
      "metadata": {
        "description": "The name of the Managed Cluster resource."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location of the Managed Cluster resource."
      }
    },
    "edgeZoneName": {
      "type": "String",
      "metadata": {
        "description": "The name of the Azure Extended Zone"
      }
    },
    "dnsPrefix": {
      "type": "string",
      "metadata": {
        "description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
      }
    },
    "osDiskSizeGB": {
      "type": "int",
      "defaultValue": 0,
      "maxValue": 1023,
      "minValue": 0,
      "metadata": {
        "description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize."
      }
    },
    "agentCount": {
      "type": "int",
      "defaultValue": 3,
      "maxValue": 50,
      "minValue": 1,
      "metadata": {
        "description": "The number of nodes for the cluster."
      }
    },
    "agentVMSize": {
      "type": "string",
      "defaultValue": "standard_d2s_v3",
      "metadata": {
        "description": "The size of the Virtual Machine."
      }
    },
    "linuxAdminUsername": {
      "type": "string",
      "metadata": {
        "description": "User name for the Linux Virtual Machines."
      }
    },
    "sshRSAPublicKey": {
      "type": "string",
      "metadata": {
        "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ContainerService/managedClusters",
      "apiVersion": "2022-05-02-preview",
      "name": "[parameters('clusterName')]",
      "location": "[parameters('location')]",
      "extendedLocation": {
        "name": "[parameters('edgeZoneName')]",
        "type": "EdgeZone"
      }
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "dnsPrefix": "[parameters('dnsPrefix')]",
        "agentPoolProfiles": [
          {
            "name": "agentpool",
            "osDiskSizeGB": "[parameters('osDiskSizeGB')]",
            "count": "[parameters('agentCount')]",
            "vmSize": "[parameters('agentVMSize')]",
            "osType": "Linux",
            "mode": "System"
          }
        ],
        "linuxProfile": {
          "adminUsername": "[parameters('linuxAdminUsername')]",
          "ssh": {
            "publicKeys": [
              {
                "keyData": "[parameters('sshRSAPublicKey')]"
              }
            ]
          }
        }
      }
    }
  ],
  "outputs": {
    "controlPlaneFQDN": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName'))).fqdn]"
    }
  }
}

如果不熟悉 ARM 模板,请参阅有关部署本地 ARM 模板的教程。

后续步骤

在 Azure 扩展区域中部署 AKS 群集后,了解 AKS 群集配置选项