适用于 Edge(预览)的 Azure Kubernetes 服务
适用于 Edge 的 Azure Kubernetes 服务 (AKS) 提供了一组广泛而复杂的功能,从而能够更轻松地在边缘计算方案中部署和操作完全托管的 Kubernetes 群集。
重要
AKS 预览功能是可选择启用的自助功能。 预览功能是“按现状”和“按可用”提供的,不包括在服务级别协议和有限保证中。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
什么是 Edge Zone 和 Azure 公共多接入边缘计算?
Edge Zone 是 Azure 在大都市区域中的小型本地化占用空间,旨在为需要最高性能级别的应用程序提供低延迟连接。
Azure 公共多接入边缘计算 (MEC) 站点是一种 Edge Zone,位于大都市区移动运营商的数据中心内或附近,专用于运行在连接到移动网络时需要低延迟的工作负载。 与运营商合作提供 Azure 公共 MEC。 对于从连接到 5G 移动网络的移动设备访问的应用程序,基础设施的布局提供了更低的延迟。
Azure 公共 MEC 可以提供优势的一些行业和用例包括:
- 媒体流式传输和内容分发
- 通过人工智能和机器学习进行实时分析与推理
- 混合现实的渲染
- 联网汽车
- 医疗保健
- 沉浸式游戏体验
- 零售行业的低延迟应用程序
什么是 AKS for Edge?
Edge Zone 提供一套 Azure 服务,用于在边缘计算环境中管理和部署应用程序。 提供的关键服务之一是适用于 Edge 的 Azure Kubernetes 服务。 借助 AKS for Edge,组织能够满足边缘计算的独特需求,同时利用 AKS 的容器业务流程和管理功能,更加轻松地部署和管理边缘应用程序。
与典型的 AKS 部署一样,Azure 平台负责维护 AKS 控制平面并提供基础设施,而组织则保留对运行应用程序的工作器节点的控制。
创建 AKS for Edge 群集使用经过优化的体系结构,该体系结构经过专门定制,可满足基于边缘的应用程序和工作负载的独特需求和要求。 在最近的 Azure 区域中创建、部署和配置群集的控制平面,而附加到群集的代理节点和节点池位于 Azure 公共 MEC Edge Zone 中。
AKS for Edge 群集中的组件与 Azure 区域中部署的典型群集中的组件相同,可确保保持相同级别的功能和性能。 有关这些组件的详细信息,请参阅 [AKS 的 Kubernetes 核心概念][concepts-cluster-workloads]。
在 Edge Zone 位置部署群集
先决条件
订阅需要有权访问目标 Edge Zone 位置,然后才能部署 AKS for Edge 群集。 此访问权限通过我们的载入过程提供,方法是通过 Azure 门户创建支持请求或通过填写 Azure 公共 MEC 注册表单来实现
群集必须运行 Kubernetes 1.24 版或更高版本
用于创建群集的标识应具有适当的的最低权限。 有关 AKS 的访问和标识的详细信息,请参阅 Azure Kubernetes 服务 (AKS) 的访问和标识选项
限制
- AKS for Edge 允许在节点池中最多自动缩放 100 个节点
资源约束
虽然 Azure 公共 MEC Edge Zone 中完全支持 AKS,但资源约束可能仍适用:
在所有 Edge Zone 中,最大节点计数为 100
在 Azure 公共 MEC Edge Zone 中,仅提供选定的 VM SKU。
在 Edge Zone 中部署 AKS 群集类似于其在任何其他区域中的部署方式。 所有资源提供程序都提供一个名为 extendedLocation
的字段,可用于在 Edge Zone 中部署资源。 这样就可以精确且有针对性地部署 AKS 群集。
应使用名为 extendedLocation
的参数来指定所需的 Edge Zone:
"extendedLocation": {
"name": "<edge-zone-id>",
"type": "EdgeZone",
},
以下示例是 Azure 资源管理器模板(ARM 模板),将用于在 Edge Zone 中部署新群集。 为以下模板参数提供自己的值:
订阅:选择 Azure 订阅。
资源组:选择“新建”。 输入资源组的唯一名称(例如 myResourceGroup),然后选择“确定”。
位置:选择一个位置,例如“美国东部”。
群集名称:输入 AKS 群集的唯一名称,例如 myAKSCluster。
DNS 前缀:输入群集的唯一 DNS 前缀,例如 myakscluster。
Linux 管理员用户名:输入一个用户名用于通过 SSH 进行连接,例如 azureuser。
SSH RSA 公钥:复制并粘贴 SSH 密钥对的公共部分(默认为
~/.ssh/id_rsa.pub
文件的内容)。
如果不熟悉 ARM 模板,请参阅有关部署本地 ARM 模板的教程。
{
"$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 Edge 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]"
}
}
}
监视
部署 AKS for Edge 群集后,可以检查状态并监视群集的指标。 监视功能与 Azure 区域中提供的功能相似。
Edge Zone 可用性
出于各种原因,高可用性在边缘至关重要。 边缘设备通常部署在远程或难以到达的位置,这使得维护和维修更加困难和耗时。 此外,这些设备还处理大量延迟敏感数据和事务,因此任何停机都可能导致企业遭受重大损失。 通过将流量管理与故障转移功能合并,组织可以确保即使发生中断,其边缘部署也能保持正常运行,从而最大程度地降低停机时间的影响,并保持业务连续性。
为了提高 Azure 公共 MEC Edge Zone 中的可用性,建议使用包含利用 Azure 流量管理器路由配置文件的流量管理的体系结构来部署工作负载。 这有助于确保在发生中断时故障转移到最近的 Azure 区域。 若要了解详细信息,请参阅 Azure 流量管理器或查看 Azure 公共 MEC 中高可用性的示例部署体系结构。
后续步骤
在 Edge Zone 中部署 AKS 群集后,了解如何配置 AKS 群集。