集群自动伸缩

自动管理集群中的节点以适应需求。

Kubernetes 需要集群中的节点来运行Pod。这意味着为工作负载 Pod 和 Kubernetes 本身提供容量。

你可以自动调整集群中可用的资源量:节点自动缩放。你可以更改节点数量,也可以更改节点提供的容量。第一种方法称为水平缩放,而第二种方法称为垂直缩放

Kubernetes 甚至可以为节点提供多维自动缩放。

手动节点管理

你可以手动管理节点级别的容量,在这种方法中,你配置固定数量的节点;即使这些节点的配置(设置、管理和停用过程)是自动化的,你也可以使用这种方法。

此页面介绍下一步,即自动化管理集群中可用的节点容量(CPU、内存和其他节点资源)的数量。

自动水平缩放

集群自动伸缩器

你可以使用集群自动伸缩器自动管理节点的缩放。集群自动伸缩器可以与云提供商或 Kubernetes 的集群 API集成,以实现所需的实际节点管理。

当存在不可调度的 Pod 时,集群自动伸缩器会添加节点;当这些节点为空时,它会移除节点。

云提供商集成

集群自动伸缩器的 README列出了一些可用的云提供商集成。

成本感知型多维缩放

Karpenter

Karpenter 通过与特定云提供商集成的插件支持直接节点管理,并且可以在优化整体成本的同时为你管理节点。

Karpenter 自动启动合适的计算资源来处理集群的应用程序。它的设计旨在让你充分利用云的优势,为 Kubernetes 集群提供快速简单的计算配置。

Karpenter 工具旨在与提供 API 驱动的服务器管理的云提供商集成,并且可以通过 Web API 获取可用服务器的价格信息。

例如,如果你在集群中启动更多 Pod,Karpenter 工具可能会购买一个比你正在使用的节点更大的新节点,然后在新节点投入使用后关闭现有节点。

云提供商集成

Karpenter 的核心与以下云提供商之间有可用的集成

Descheduler

descheduler 可以帮助你将 Pod 合并到较少数量的节点上,以便在集群具有剩余容量时帮助自动缩减。

根据集群大小调整工作负载大小

集群比例自动伸缩器

对于需要根据集群大小进行缩放的工作负载(例如 cluster-dns 或其他系统组件),你可以使用集群比例自动伸缩器

集群比例自动伸缩器会监视可调度节点和内核的数量,并相应地缩放目标工作负载的副本数。

集群比例垂直自动伸缩器

如果副本数应保持不变,则可以使用集群比例垂直自动伸缩器根据集群大小垂直缩放工作负载。该项目处于 beta 阶段,可以在 GitHub 上找到。

当集群比例自动伸缩器缩放工作负载的副本数时,集群比例垂直自动伸缩器会根据集群中的节点数和/或内核数调整工作负载(例如 Deployment 或 DaemonSet)的资源请求。

下一步

此页面上的项目引用提供 Kubernetes 所需功能的第三方产品或项目。Kubernetes 项目的作者不对这些第三方产品或项目负责。有关更多详细信息,请参阅CNCF 网站指南

在提出添加额外第三方链接的更改之前,你应该阅读内容指南

上次修改时间为 2024 年 11 月 18 日太平洋标准时间下午 9:22:为节点自动缩放记录过度配置 (#46635) (6325a083dc)