关于使用快速启动节点更快地启动工作负载

本页面介绍了如何使用快速启动节点在 Google Kubernetes Engine (GKE) 集群中更快地部署和扩缩工作负载。当工作负载使用兼容的配置时,GKE 会在 Autopilot 模式下尽最大努力使用快速启动节点。

对于兼容的机器系列,快速启动 GKE 节点的启动时间会显著缩短。缩短启动时间可为您带来以下好处:

  • 冷启动速度更快
  • 更快的自动扩缩
  • 缩短了 Pod 调度长尾延迟时间
  • 提高了基础架构成本效益

借助快速启动节点,GKE 会预先初始化硬件资源,以缩短启动时间。预初始化的资源会尽力提供。激增请求可能只能部分得到处理。如果没有快速启动节点,资源会按需初始化,并且节点会在正常启动时间提供服务。

要求

快速启动节点无需进行其他配置。如果您的工作负载使用兼容的配置,GKE 会自动使用快速启动节点。您必须满足以下所有要求才能使用快速启动节点:

  • 使用 Autopilot 集群。
  • 使用快速发布渠道中的任何版本。
  • 使用以下任一兼容的计算资源,最大兼容的启动磁盘大小为 500 GiB:

  • 使用 pd-balanced 启动磁盘类型。

  • 请勿使用与快速启动节点不兼容的任何功能。如需了解详情,请参阅限制

限制

以下功能与快速启动的 GKE 节点不兼容。如果您使用以下任一功能,GKE 会预配启动时间正常的节点:

Autopilot GPU 工作负载

在 Autopilot 集群中请求兼容的 GPU 可使节点启动时间缩短多达 4 倍,Pod 调度时间缩短多达 2 倍,而 GKE 标准集群中的类似请求则无法实现此效果,因为 Autopilot GPU 工作负载可以使用快速启动节点。

以下是一些示例用例。不过,任何满足要求部分中条件的 Pod 都与快速启动节点兼容。

ComputeClass

在 ComputeClass 中请求兼容的加速器类型和数量,如以下示例所示:

apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: ACCELERATOR_COMPUTE_CLASS_NAME
spec:
  priorities:
  - gpu:
      type: ACCELERATOR_TYPE
      count: ACCELERATOR_COUNT
  nodePoolAutoCreation:
    enabled: true

当您在 Pod 中选择此 ComputeClass 时(如以下示例所示),GKE 会使用快速启动节点:

apiVersion: v1
kind: Pod
metadata:
  name: POD_NAME
spec:
  nodeSelector:
    # Select a ComputeClass that requests compatible GPUs
    cloud.google.com/compute-class: ACCELERATOR_COMPUTE_CLASS_NAME
  containers:
  - name: my-container
    image: gcr.io/google_containers/pause
    resources:
      limits:
        nvidia.com/gpu: ACCELERATOR_COUNT

替换以下值:

  • ACCELERATOR_COMPUTE_CLASS_NAME:请求加速器的 ComputeClass 的名称。
  • ACCELERATOR_TYPE:加速器的类型。
  • ACCELERATOR_COUNT:Pod 所需的加速器数量。此值必须小于或等于 ComputeClass 中 spec.priorities.gpu.count 字段的值。
  • POD_NAME:您的 pod 的名称。

如需详细了解 ComputeClass,请参阅自定义计算类简介

Pod 规范

在 Pod 规范中选择兼容的加速器类型和数量,如以下示例所示:

apiVersion: v1
kind: Pod
metadata:
  name: POD_NAME
spec:
  nodeSelector:
    cloud.google.com/gke-accelerator: ACCELERATOR_NAME
  containers:
  - name: my-container
    image: gcr.io/google_containers/pause
    resources:
      limits:
        nvidia.com/gpu: ACCELERATOR_COUNT

替换以下值:

  • POD_NAME:您的 pod 的名称。
  • ACCELERATOR_NAME:Pod 所需的加速器的名称。
  • ACCELERATOR_COUNT:Pod 所需的加速器数量。

价格

GKE Autopilot 中提供快速启动节点,无需额外付费。如需详细了解 GKE Autopilot 价格,请参阅 Google Kubernetes Engine 价格中的“Autopilot 模式”部分。

后续步骤