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

在边缘计算选项中选择 Kubernetes

本文档介绍可用于扩展边缘计算的各种选项的权衡。 介绍了每个 Kubernetes 选项的以下注意事项:

  • 运营成本。 维护和操作 Kubernetes 群集所需的预期劳动力。

  • 配置容易度。 配置和部署 Kubernetes 群集的难度级别。

  • 灵活性。 Kubernetes 选项适应性的衡量方法之一为将自定义配置与边缘现有基础结构集成。

  • 混合节点。 能够运行具有 Linux 和 Windows 节点的 Kubernetes 群集。

假设

  • 你是一个群集操作员,希望了解在边缘运行 Kubernetes 和在 Azure 中管理群集的不同选项。

  • 你已充分了解现有基础结构和任何其他基础结构要求(包括存储和网络要求)。

阅读本文档后,你将能够更好地确定哪个选项最适合你的情况和所需的环境。

Kubernetes 选择概览

运营成本 配置容易度 灵活性 混合节点 摘要
裸机 Kubernetes 困难 在相应位置的任何可用基础结构上的基础配置,可选择使用 Azure Arc 来增加 Azure 功能。
Azure Stack Edge Pro 上的 K8s 简单 仅限 Linux Kubernetes 部署在相应位置上部署的 Azure Stack Edge 设备上。
AKS 混合 简单 中型 AKS 部署在 Azure Stack HCI 或 Windows Server 2019 上。

*其他托管边缘平台(OpenShift、Tanzu 等)不在本文档的范围内。

**为简单起见,这些值基于使用 kubeadm。 在边缘运行裸机 Kubernetes 的不同选项将改变这些类别的评级。

裸机 Kubernetes

在任何底层基础结构上使用 kubeadm 等工具对 Kubernetes 进行基本配置。

裸机 Kubernetes 的最大限制是围绕组织的特定需求和要求。 使用任何分发、网络接口和插件的机会意味着更高的复杂性和运营成本。 但这为自定义群集提供了最灵活的选项。

场景

通常,边缘位置对运行 Kubernetes 群集有特定要求,而本文档中介绍的其他 Azure 解决方案无法满足这些要求。 这意味着,此选项通常最适合那些由于现有基础结构不受支持而无法使用托管服务的人或寻求对其群集进行最大控制的人。

  • 对于那些不熟悉 Kubernetes 的人来说,此选项尤其困难。 对于希望运行边缘群集的组织来说,这并不罕见。 MicroK8sk3s 等选项旨在拉平学习曲线。

  • 了解任何底层基础结构和任何预期将提前进行的集成非常重要。 这将有助于缩小可行选项的范围,并确定与开源工具和/或插件的任何差距。

  • 使用 Azure Arc 启用群集提供了一种管理 Azure 中的群集和其他资源简单方法。 这还会为群集带来其他 Azure 功能,包括 Azure PolicyAzure MonitorMicrosoft Defender for Cloud 和其他服务。

  • 因为群集配置并非易事,因此请务必注意 CI/CD。 跟踪各种插件的上游更改并对其采取相应措施,并确保这些更改不会影响群集的运行状况,成为直接责任。 拥有强大的 CI/CD 解决方案、强大的测试和监视对你来说非常重要。

工具选项

群集启动:

  • kubeadm:用于创建基础 Kubernetes 群集的 Kubernetes 工具。 适用于标准计算资源 (Linux/Windows)。

  • MicroK8s:简化的管理和配置(“LowOps”),符合规范的 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 设备将计算、存储、网络和硬件加速机器学习 (ML) 等 Azure 功能传送到任何边缘位置。 在任何 Pro-GPU、Pro-R 和 Mini-R 设备上启用计算角色后,即可创建 Kubernetes 群集。 可使用设备可用的标准更新来管理 Kubernetes 群集的升级。

场景

非常适合拥有现有 (Linux) IoT 工作负载或为边缘机器学习升级计算的用户。 不需要对群集进行更精细的控制时,这是一个不错的选择。

  • 默认情况下不授予管理员权限。 尽管可以通过产品组规定某些例外情况,但对群集进行更精细的控制还是比较困难。

  • 如果还没有 Azure Stack Edge 设备,则需要额外的成本。 探索 Azure Stack Edge 设备,看是否有任何设备符合计算要求。

  • 为设备上的 Kubernetes 网络安装了 CalicoMetalLBCoreDNS

  • 目前仅支持 Linux 工作负载。

  • 除了 Kubernetes,Azure Stack Edge 还附带 IoT 运行时,这意味着工作负载也可以通过 IoT Edge 部署到 Azure Stack Edge 群集。

  • 当前不支持双节点群集。 这实际上意味着此选项不是高可用性 (HA) 解决方案。

注意事项

运营成本:

  • 借助设备随附的支持,运营成本降至最低,并且仅限于工作负载管理。

配置容易度:

  • 与裸机 Kubernetes 相比,预先配置且记录良好的 Kubernetes 群集部署简化了所需的配置。

灵活性:

  • 配置已设置,默认情况下不授予管理员权限。 除了基本配置之外,可能还需要产品组参与,并且底层基础结构必须是 Azure Stack Edge Pro 设备,因此该选项不太灵活。

AKS 混合

AKS 混合是一组预定义的设置和配置,用于在运行 Windows Server 或 Azure Stack HCI 20H2 或更高版本的多节点群集上部署一个或多个 Kubernetes 群集(使用 Windows Admin Center 或 PowerShell 模块)。

场景

非常适合希望以简化方式在兼容设备(Azure Stack HCI 或 Windows Server)上获取 Microsoft 支持的群集的用户。 与裸机 Kubernetes 选项相比,以牺牲灵活性为代价降低了操作和配置复杂性。

注意事项

运营成本:

  • Microsoft 支持的群集可将运营成本降至最低。

配置容易度:

  • 与裸机 Kubernetes 相比,预先配置且记录良好的 Kubernetes 群集部署简化了所需的配置。

灵活性:

  • 群集配置本身已设置,但已授予管理员权限。 底层基础结构必须是 Azure Stack HCI 或 Windows Server。 2019。此选项的灵活性高于 Azure Stack Edge 上的 Kubernetes,但灵活性又低于 Kubernetes。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤

有关详细信息,请参阅以下文章: