GKE Standard 中的 Autopilot 模式工作负载简介


您可以使用 ComputeClasses 在 GKE Standard 模式集群中运行 Google Kubernetes Engine (GKE) Autopilot 工作负载。本页介绍了可用于以 Autopilot 模式运行工作负载的方法,并可帮助您确定何时以特定模式运行工作负载。

此信息适用于以下人员:

  • 希望优化组织运营费用的云架构师。
  • 希望减少手动基础设施管理开销的平台管理员。
  • 希望尽可能将基础架构维护、升级和扩缩转移到 Google Cloud 的站点可靠性工程师 (SRE)。

您应该已经熟悉以下概念:

GKE Autopilot 简介

Autopilot 是 GKE 中的一种运维模式,在此模式中,Google 会管理您的节点基础架构、扩缩、安全性和预配置功能。Autopilot 模式经过优化,可在应用了安全性、可靠性、性能和可伸缩性方面的推荐设置的环境中运行大多数生产工作负载。如需根据您的需求决定使用 Autopilot 模式还是 Standard 模式,请参阅 GKE 操作模式简介

您可以通过以下方式使用 Autopilot 模式:

  • 创建使用 Autopilot 模式的集群:Google 会管理整个集群,并应用自动化、可靠性、安全性和费用方面的最佳实践。
  • 在 Standard 集群中以 Autopilot 模式运行工作负载:您可以部署 Autopilot ComputeClass,并在工作负载中选择它们。Google 会管理 GKE 为这些特定工作负载创建的节点。您可以控制集群,并运行自己的节点池,同时运行由 GKE 管理的节点。

ComputeClasses 的 Autopilot 模式简介

ComputeClass 是一种 Kubernetes 自定义资源,用于定义节点配置列表,例如机器类型或功能设置。您可以在 Kubernetes 工作负载规范中选择特定的 ComputeClass。当选择某个 ComputeClass 的工作负载需要新节点时,GKE 会尝试使用 ComputeClass 声明的配置之一来预配该节点。GKE 会按顺序尝试 ComputeClass 中的每种配置,如果节点创建失败,则会回退到下一种配置。如需了解详情,请参阅自定义 ComputeClass 简介

如需在 GKE Standard 集群中运行 Autopilot 工作负载,您需要在 ComputeClass 中启用 Autopilot 模式,并在特定工作负载中选择该 ComputeClass。Google 会管理 GKE 为这些工作负载预配的任何新节点,这与 Google 管理 Autopilot 集群中的节点类似。Autopilot 模式的大部分优势和安全功能都适用于这些工作负载和宿主节点。

Autopilot 模式 ComputeClasses 为集群管理员提供了更多灵活性,可让您选择对集群中的特定工作负载和基础架构的控制级别,例如:

  • 您可以让 GKE 以 Autopilot 模式运行特定工作负载,从而实现对这些工作负载的完全管理。
  • 对于不使用 Autopilot 模式的工作负载和基础架构(例如手动创建的节点池),您仍拥有完全控制权。
  • 您可以将 Autopilot ComputeClass 设置为集群或命名空间的默认值,以便工作负载在 Autopilot 模式下运行,除非它们明确请求其他选项。

借助这些选项,集群管理员可以决定使用 Autopilot 的级别和范围。

Autopilot 模式 ComputeClasses 为集群管理员提供了更多灵活性,可让您选择对集群中的特定工作负载和基础架构的控制级别,例如:

  • 您可以让 GKE 以 Autopilot 模式运行特定工作负载,从而实现对这些工作负载的完全管理。
  • 对于不使用 Autopilot 模式的工作负载和基础架构(例如手动创建的节点池),您仍拥有完全控制权。
  • 您可以将 Autopilot ComputeClass 设置为集群或命名空间的默认值,以便工作负载在 Autopilot 模式下运行,除非它们明确请求其他选项。

借助这些选项,集群管理员可以决定使用 Autopilot 的级别和范围。

Standard 集群中 Autopilot ComputeClasses 的优势

以 Autopilot 模式运行部分工作负载可带来以下好处:

  • 降低基础架构管理费用:Google 会为您升级、维护、配置和微调特定节点。
  • 使用 Autopilot 价格模式:使用 Autopilot ComputeClass 的工作负载会使用 Autopilot 价格模式进行结算。此价格模式包括针对不请求特定硬件的工作负载的按 Pod 结算。如需了解详情,请参阅价格部分
  • 提高扩缩能力和安全状况:Autopilot 工作负载可享受多项优势,例如访问容器优化型计算平台、改进的默认安全限制以及基于资源请求的节点自动扩缩。这些工作负载的节点使用节点自动升级和自动修复等功能。
  • 提高可靠性:GKE 服务等级协议 (SLA) 包含 Autopilot 的 Pod 正常运行时间服务等级目标 (SLO)。

Autopilot 集群也提供许多此类优势,与 Standard 集群相比,Autopilot 集群还提供更完善的托管体验,并包含多项安全、网络和资源管理优势。如需了解详情,请参阅 Autopilot 概览

Autopilot ComputeClasses 中的硬件选择

在 Autopilot ComputeClass 中,您可以为节点选择特定硬件(例如 GPU 或机器类型),也可以让 GKE 将 Pod 放置在通用的容器优化计算平台上。对于大多数不需要特定硬件即可正常运行的生产工作负载,建议选择“通用”选项。

下表介绍了这些配置选项、如何在 ComputeClass 中选择一个选项,以及此选择如何影响您的结算模式:

表格 1. Autopilot ComputeClasses 中的硬件选择
工作负载要求 建议的 ComputeClass 配置 结算模式
通用工作负载

使用具有 podFamily 优先级规则的 Autopilot ComputeClass 在 Autopilot 容器优化计算平台上运行不需要特定硬件的工作负载。此平台非常适合以下常规工作负载:

  • 网络服务器
  • 事件驱动型作业
  • 批处理
  • CI/CD 流水线

标准集群可用的内置 Autopilot ComputeClass 使用 podFamily 优先级规则。

基于 Pod 的结算模式
需要特定硬件的工作负载

使用采用任何可用硬件配置规则的 ComputeClass,例如 machineFamily 规则或 gpus 规则。

基于节点的结算模式

ComputeClasses 中 Autopilot 的配置

您可以在 Standard 集群中使用 Autopilot 模式,方法是使用 GKE 提供的内置 Autopilot ComputeClass,或者在您创建的任何自定义 ComputeClass 中启用 Autopilot。以下部分介绍了每个选项。

内置 Autopilot ComputeClass

GKE 会为您配置特定的 Autopilot ComputeClass。您可以在任何符合条件的集群中选择这些内置的 Autopilot 类。标准集群中的内置 Autopilot ComputeClass 使用 podFamily 优先级规则在经过容器优化的计算平台上运行 Pod。如需了解详情,请参阅 GKE 中的内置 ComputeClass 简介

自定义 Autopilot ComputeClass

您可以在您管理的任何自定义 ComputeClass 中启用 Autopilot。 如果您的工作负载有特定的硬件要求,此选项会很有用。 ComputeClass 自定义资源中的 autopilot 字段可让您在特定 ComputeClass 中启用或停用 Autopilot。

如需在现有 ComputeClass 中启用 Autopilot,您必须将其删除,更新配置,然后在集群中重新创建 ComputeClass。 您的更改会应用于 GKE 为您在更新 Autopilot ComputeClass 后部署的工作负载创建的任何新节点。

如需详细了解如何在自定义计算类中启用 Autopilot,请参阅为 Autopilot Pod 选择特定硬件

价格

GKE Autopilot 价格适用于 GKE 为 Autopilot ComputeClass 创建的节点和工作负载。下表介绍了适用于标准模式集群中不同 Autopilot ComputeClass 配置的结算模式。

表格 3. Autopilot 计算类的价格
不同 ComputeClass 配置的结算模式
基于 Pod 的结算模式 基于 Pod 的结算模式适用于使用 podFamily 优先级规则(而不是选择特定机器或硬件)的 Autopilot 计算类。使用 podFamily 规则的内置 Autopilot ComputeClasses 使用基于 Pod 的结算模式。
基于节点的结算模式 基于节点的结算模式适用于明确请求特定节点配置(例如 N2 实例或 GPU)的 Autopilot 计算类。

Autopilot 价格仅适用于使用 Autopilot ComputeClass 的工作负载和节点。您的 Standard 模式集群和您运行的任何其他节点池将继续使用 GKE Standard 模式价格

由 Autopilot 管理的节点的预配置设置

在 ComputeClasses 中启用 Autopilot 模式之前,请先了解 GKE 创建的用于运行 Autopilot 工作负载的节点会带来哪些影响。Google 会在 Autopilot 节点中配置特定功能和安全限制。因此,如果工作负载不符合 Autopilot 的安全要求,则在 Standard 模式节点中部署和正常运行的工作负载可能会被 Autopilot 模式拒绝。

下表介绍了会替换标准集群中相应设置的功能配置。如果配置未在此表中列出,则 Autopilot 节点会使用 Standard 集群设置。例如,此表中未列出 Workload Identity Federation for GKE,这意味着 Standard 集群的 Workload Identity Federation for GKE 设置适用于 GKE 创建的 Autopilot 节点。

表格 4.Autopilot 节点的预配置设置
功能 标准集群级设置 由 Autopilot 管理的节点设置
节点升级和维护

可配置:

预配置:

  • 节点自动修复:已启用
  • 节点自动升级:已启用
  • 节点升级策略: 使用预配置参数的超额配置升级
自动扩缩 可配置: 自动扩缩配置文件 预配置:optimize-utilization 自动扩缩配置文件
网络 VPC 原生或基于路由 需要 VPC 原生集群
安全

可配置:

预配置:

节点操作系统

可配置:

预配置:

节点启动磁盘

可配置:

可配置:

  • 启动磁盘类型:使用 ComputeClass storage.bootDiskType 字段中的值。如果未设置此字段,GKE 会按如下方式设置启动磁盘类型:
    • 如果 ComputeClass 使用 podFamily 规则,GKE 会使用 pd-balanced 磁盘。
    • 如果 ComputeClass 不使用 podFamily 规则,GKE 会使用集群的默认启动磁盘类型。
  • 启动磁盘大小:GKE 使用计算类 storage.bootDiskSize 字段中的值。如果未设置此字段,GKE 会按如下方式设置启动磁盘大小:
    • 如果您为节点自动预配设置了默认启动磁盘大小,GKE 会使用该值。
    • 如果您未为节点自动预配设置默认启动磁盘大小,GKE 将使用集群默认大小。
节点元数据

Autopilot 工作负载的资源请求

为了让 Autopilot 工作负载高效运行,GKE 会对 Pod 中的 CPU、内存和临时存储请求强制执行某些最小值和最大值。GKE 还会将默认请求应用于未明确请求这些资源之一的 Pod。GKE Autopilot 工作负载中最小、最大和默认资源要求的具体值因 Pod 使用的硬件类型而异。

对于临时存储空间,如果您未请求临时存储空间,则所有 ComputeClass 和硬件选择的默认值都相同。如需了解详情,请参阅默认资源请求

下表提供了指向 Pod 请求的 CPU 和内存要求的链接,具体取决于硬件类型:

表格 5. Autopilot CPU 和内存要求
资源类型 最小和最大请求数 默认请求
通用 Pod
podFamily 优先级规则
请参阅计算类的最小值和最大值表格中的“通用”行。 请参阅用于 ComputeClasses 的默认请求表格中的“通用”行。
GPU 和 TPU 取决于硬件加速器的类型和数量。如需了解详情,请参阅加速器 ComputeClass 的最小值和最大值 取决于硬件加速器的类型和数量。如需了解详情,请参阅加速器的默认请求
特定 Compute Engine 机器类型和机器系列
  • 最低:CPU 或内存没有最小值。
  • 最大值:最大值是 Compute Engine 实例的资源容量。
对于任何 Compute Engine 机器类型或机器系列,ComputeClasses 的默认请求表中的“通用”行中的默认请求。

后续步骤