集群自动扩缩容

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

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 或其他系统组件),您可以使用 集群比例自动扩缩容器

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

集群比例垂直自动扩缩容器

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

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

下一步

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

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

上次修改时间:2024 年 2 月 18 日下午 2:59 PST:添加有关集群自动扩缩容的概念页面 (b39e01b971)