您可以使用 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 中选择一个选项,以及此选择如何影响您的结算模式:
工作负载要求 | 建议的 ComputeClass 配置 | 结算模式 |
---|---|---|
通用工作负载 | 使用具有
标准集群可用的内置 Autopilot ComputeClass 使用 |
基于 Pod 的结算模式 |
需要特定硬件的工作负载 | 使用采用任何可用硬件配置规则的 ComputeClass,例如 |
基于节点的结算模式 |
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 配置的结算模式。
不同 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 节点。
功能 | 标准集群级设置 | 由 Autopilot 管理的节点设置 |
---|---|---|
节点升级和维护 |
可配置: |
预配置:
|
自动扩缩 | 可配置: 自动扩缩配置文件 | 预配置:optimize-utilization 自动扩缩配置文件 |
网络 | VPC 原生或基于路由 | 需要 VPC 原生集群 |
安全 |
可配置:
|
预配置:
|
节点操作系统 |
可配置: |
预配置:
|
节点启动磁盘 |
可配置: |
可配置:
|
节点元数据 |
|
|
Autopilot 工作负载的资源请求
为了让 Autopilot 工作负载高效运行,GKE 会对 Pod 中的 CPU、内存和临时存储请求强制执行某些最小值和最大值。GKE 还会将默认请求应用于未明确请求这些资源之一的 Pod。GKE Autopilot 工作负载中最小、最大和默认资源要求的具体值因 Pod 使用的硬件类型而异。
对于临时存储空间,如果您未请求临时存储空间,则所有 ComputeClass 和硬件选择的默认值都相同。如需了解详情,请参阅默认资源请求。
下表提供了指向 Pod 请求的 CPU 和内存要求的链接,具体取决于硬件类型:
资源类型 | 最小和最大请求数 | 默认请求 |
---|---|---|
通用 PodpodFamily 优先级规则 |
请参阅计算类的最小值和最大值表格中的“通用”行。 | 请参阅用于 ComputeClasses 的默认请求表格中的“通用”行。 |
GPU 和 TPU | 取决于硬件加速器的类型和数量。如需了解详情,请参阅加速器 ComputeClass 的最小值和最大值。 | 取决于硬件加速器的类型和数量。如需了解详情,请参阅加速器的默认请求。 |
特定 Compute Engine 机器类型和机器系列 |
|
对于任何 Compute Engine 机器类型或机器系列,ComputeClasses 的默认请求表中的“通用”行中的默认请求。 |