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

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

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

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

使用快速启动节点时,GKE 会预初始化硬件资源,以缩短启动时间,并尽最大努力提供预初始化的资源。当请求激增时,可能只有部分能获得响应。如果不使用快速启动节点,资源会按需初始化,并且节点会按正常启动时间响应。

要求

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

  • 使用 Autopilot 集群,或在 Standard 集群中以 Autopilot 模式运行工作负载。
  • 使用快速发布渠道
  • 使用以下任何兼容的计算资源,最大兼容启动磁盘大小为 500 GiB:

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

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

限制

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

Autopilot GPU 工作负载

与 GKE Standard 集群中的类似请求相比,在 Autopilot 集群中请求兼容的 GPU 可使节点启动速度提高至 4 倍,Pod 调度速度提高至 2 倍,因为 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 模式”部分。

后续步骤