本文概述了 Azure Kubernetes 服务(AKS)中的节点自动预配(NAP),包括其工作原理、升级行为、先决条件、限制和资源。
什么是 AKS 中的节点自动预配?
将工作负荷部署到 AKS 时,需要选择适当的虚拟机(VM)大小作为节点池配置的一部分。 随着工作负荷变得更加复杂,可能具有不同资源要求的不同工作负载,这使得为大量资源请求设计 VM 配置变得更加困难。
节点自动预配(NAP)通过自动预配和管理工作负载的最佳 VM 配置,简化了此过程。 NAP 使用待处理的 Pod 资源需求来决定最佳虚拟机配置,以最高效和最具成本效益的方式运行工作负荷。
NAP 会自动在 AKS 群集上部署、配置和管理 Karpenter,并基于开源 Karpenter 和 AKS Karpenter 提供程序 项目。
节点自动预配的工作原理是什么?
节点自动预配、伸缩和管理群集中的 VM(节点),以应对未决 Pod 的压力。
节点自动预配的关键组件
NAP 使用以下关键组件来帮助管理群集的节点:
| 组件 | Description |
|---|---|
NodePool 和 AKSNodeClass |
你创建和管理的自定义资源定义(CRD)用于定义工作负载的节点预配策略、VM 规范和约束。 |
NodeClaims |
由 NAP 管理,表示可以监视的预配节点的当前状态。 |
| 工作负荷资源要求 | Pod、部署、作业和其他 Kubernetes 资源中的 CPU、内存及其他规范是预配决策的依据。 |
适用于节点自动预配的 Kubernetes 升级行为
节点自动预配节点的 Kubernetes 升级遵循控制平面 Kubernetes 版本。 如果执行群集升级,则节点将自动更新以与控制平面的版本保持一致。
建议设置 Kubernetes 自动升级 通道,该通道会自动处理群集的 Kubernetes 升级。 我们还建议为群集设置 计划内维护时段 。 通过 aksManagedAutoUpgradeSchedule 维护时段,您可以控制何时执行由指定的自动升级渠道计划的集群升级。 有关详细信息,请参阅 使用计划内维护来计划和控制 Azure Kubernetes 服务 (AKS) 群集的升级。
先决条件
若要在 AKS 中使用节点自动预配,需要满足以下先决条件:
- 一份 Azure 订阅。 如果没有试用版,可以创建 试用版。
- Azure CLI
2.76.0或更高版本。 若要查找版本,请运行az --version。 若要详细了解如何安装或升级 Azure CLI,请参阅安装 Azure CLI。
限制和不支持的功能
以下限制和不支持的功能适用于 AKS 中的节点自动预配:
- 无法在使用 群集自动缩放程序启用的群集上启用 NAP。
- 不支持 Windows 节点池。
- 不支持 IPv6 群集。
- 不支持服务主体。 可以使用系统分配的或用户分配的托管标识。
- 不支持磁盘加密集。
- 不支持自定义证书颁发机构(CA)证书。
- 不能停止已启用 NAP 的 群集。
- 不支持 HTTP 代理。
- 创建启用了 NAP 的群集后,无法更改 群集出口出站类型 。
- 在自定义虚拟网络(VNet)中创建 NAP 群集时,必须使用 标准负载均衡器。 不支持基本负载均衡器。
在 AKS 上开始节点自动预配
以下资源可帮助你开始使用 AKS 上的节点自动预配: