你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文档介绍可用于扩展边缘计算的各种选项的权衡。 介绍了每个 Kubernetes 选项的以下注意事项:
运营成本。 维护和操作 Kubernetes 群集所需的预期劳动力。
配置容易度。 配置和部署 Kubernetes 群集的难度级别。
灵活性。 Kubernetes 选项适应性的衡量方法之一为将自定义配置与边缘现有基础结构集成。
混合节点。 能够运行具有 Linux 和 Windows 节点的 Kubernetes 群集。
假设:
你是一名群集作员,希望了解在边缘运行 Kubernetes 以及管理 Azure 中的群集的不同选项。
你已充分了解现有基础结构和任何其他基础结构要求(包括存储和网络要求)。
本文可帮助你确定最适合你的方案和环境的选项。
Kubernetes 选择概览
| 运营成本 | 配置容易度 | 灵活性 | 混合节点 | 摘要 | |
|---|---|---|---|---|---|
| 裸机 Kubernetes | 高 | 困难 | 高 | 是 | 在任意可用基础设施的现场进行从头配置,并可选择使用 Azure Arc 来增强 Azure 的功能。 |
| Azure Stack Edge Pro 上的 Kubernetes | 低 | 简单 | 低 | 仅限 Linux | Kubernetes 部署在相应位置上部署的 Azure Stack Edge 设备上 |
| Azure Kubernetes 服务 (AKS) 混合模式 | 低 | 简单 | 中型 | 是 | 部署在 Azure 本地或 Windows Server 2019 上的 AKS |
*其他托管边缘平台(如 OpenShift 和 Tanzu)不在本文档范围内。
**为简单起见,这些值基于使用 kubeadm。 在边缘运行裸机 Kubernetes 的不同选项将改变这些类别的评级。
裸机 Kubernetes
可以在任何底层基础结构上使用 kubeadm 等工具从头开始配置 Kubernetes。
裸机 Kubernetes 的最大限制是围绕组织的特定需求和要求。 使用任何分发、网络接口和插件的机会意味着更高的复杂性和运营成本。 但此选项为自定义群集提供了最大的灵活性。
场景
通常,边缘位置对运行 Kubernetes 群集有特定要求,而本文档中介绍的其他 Azure 解决方案无法满足这些要求。 如果由于现有基础结构不受支持或希望对群集进行最大控制,因此无法使用托管服务,则此选项通常是最好的。
如果不熟悉 Kubernetes,则此选项尤其困难,这对于想要运行边缘群集的组织来说尤其困难。 MicroK8s 或 k3s 等选项旨在拉平学习曲线。
了解任何基础基础结构和前面发生的任何集成非常重要。 然后,可以缩小可行选项的范围,并识别与开源工具或插件之间的任何差距。
您可以使用 Azure Arc 来启用群集,并简化在 Azure 中与其他资源一同管理群集的过程。 此方法还提供群集的其他 Azure 功能,包括 Azure Policy、 Azure Monitor、 Microsoft Defender for Cloud 和其他服务。
请务必注意持续集成和持续部署(CI/CD),因为群集配置并不简单。 必须跟踪和处理各种插件的上游更改。 确保这些更改不会影响群集的运行状况。 拥有强大的 CI/CD 解决方案、强大的测试和监视对你来说非常重要。
工具选项
群集启动:
kubeadm:用于从基础创建 Kubernetes 群集的工具。 适用于标准计算资源,例如 Linux 或 Windows。
MicroK8s:由 Canonical 提供的合规 Kubernetes 发行版,简化了管理和配置。 它支持低操作方法。
k3s:经过认证的 Kubernetes 发行版,专为物联网 (IoT) 和边缘计算而构建。
存储:
- 容器存储接口(CSI)驱动程序:许多选项都可用于满足从云到本地文件共享的要求。
网络:
- 请参阅 可用加载项的完整列表。 一些常用选项包括 Flannel(一种简单的覆盖网络)和 Calico(提供完整的网络堆栈)。
注意事项
运营成本:
- 如果没有托管服务附带的支持,组织负责维护和操作整个集群,包括存储、网络、升级、可观测性和应用程序管理。 它具有较高的运营成本。
配置容易度:
- 必须在配置的每个阶段评估许多开源选项,包括网络、存储和监视选项,这些选项可能变得复杂。 此方法为群集配置配置 CI/CD 需要更多注意事项。 由于这些问题,配置更加困难。
灵活性:
- 裸机 Kubernetes 能够在不受任何供应商限制的情况下使用任何开源工具或插件,因此非常灵活。
Azure Stack Edge 上的 Kubernetes
Azure Stack Edge Pro 设备为你部署 Kubernetes 群集,包括主虚拟机(VM)和辅助角色 VM。
Azure Stack Edge Pro 设备向任何边缘位置提供计算、存储、网络和硬件加速机器学习等 Azure 功能。 可以在任何 Pro-GPU、Pro-R 和 Mini-R 设备上启用计算角色后创建 Kubernetes 群集。 使用设备可用的标准更新管理 Kubernetes 群集的升级。
场景
如果你有现有的 (Linux) IoT 工作负载,或者正在升级用于边缘机器学习的计算,则此方法是理想的方法。 当不需要对群集进行更精细的控制时,请使用此选项。
默认情况下不授予管理员权限。 可以与产品团队合作制定某些例外,但很难更精细地管理集群。
如果没有现有的 Azure Stack Edge 设备, 则适用额外费用 。 浏览 Azure Stack Edge 设备,看看是否有任何设备符合计算要求。
仅支持 Linux 工作负载。
除了 Kubernetes,Azure Stack Edge 还附带了 IoT 运行时,这意味着工作负荷也可能通过 Azure IoT Edge 部署到 Azure Stack Edge 群集。
不支持两个节点群集。 因此,此选项不是高可用性解决方案。
注意事项
运营成本:
- 借助设备随附的支持,运营成本降至最低,并且仅限于工作负载管理。
配置容易度:
- 预配置且记录良好的 Kubernetes 群集部署简化了与裸机 Kubernetes 相比所需的配置。
灵活性:
- 配置已设置,默认情况下不授予管理员权限。 产品组的参与可能不仅限于基本配置。 底层基础结构必须是 Azure Stack Edge Pro 设备。 此选项具有较低的灵活性。
AKS 混合
AKS 混合使用预定义的设置和配置来部署一个或多个 Kubernetes 群集。 可以在运行 Windows Server 的多节点群集上使用 Windows Admin Center 或 PowerShell 模块部署这些群集。
场景
如果您希望用一种简化且流畅的方式在兼容的设备上,如 Azure Local 或 Windows Server,获取由 Microsoft 支持的群集,那么此方法是理想之选。 与裸机 Kubernetes 选项相比,操作和配置的复杂性有所降低,但代价是降低了灵活性。
注意事项
运营成本:
- Microsoft支持的群集可最大程度地降低运营成本。
配置容易度:
- 预配置且记录良好的 Kubernetes 群集部署简化了与裸机 Kubernetes 相比所需的配置。
灵活性:
- 群集配置本身已设置,并授予管理员权限。 底层基础结构必须是 Azure 本地或 Windows Server 2019。 此选项比 Azure Stack Edge 上的 Kubernetes 更灵活,不如裸机 Kubernetes 灵活。
贡献者
Microsoft维护本文。 以下参与者撰写了本文。
主要作者:
- Prabhjot Kaur | 首席云解决方案架构师
若要查看非公开的LinkedIn个人资料,请登录LinkedIn。
后续步骤
- 什么是 IoT Edge
- Azure Stack Edge Pro GPU 设备上的 Kubernetes
- 使用 IoT Edge 模块在 Azure Stack Edge Pro GPU 设备上运行 Kubernetes 无状态应用程序
- 通过 kubectl 在 Azure Stack Edge Pro GPU 设备上部署 Kubernetes 无状态应用程序
- 使用 Kubernetes 仪表板监视 Azure Stack Edge Pro GPU 设备