本页面介绍如何使用快速启动节点在 Google Kubernetes Engine (GKE) 集群中更快地部署和扩缩工作负载。当工作负载使用兼容的配置时,Autopilot 模式下的 GKE 会尽最大努力使用快速启动节点。
对于兼容的机器系列,快速启动 GKE 节点的启动时间会显著缩短。加快启动速度可为您带来以下好处:
- 加快冷启动速度
- 更快的自动扩缩
- 缩短 Pod 调度长尾延迟时间
- 提高基础设施成本效益
使用快速启动节点时,GKE 会预初始化硬件资源,以缩短启动时间,并尽最大努力提供预初始化的资源。当请求激增时,可能只有部分能获得响应。如果不使用快速启动节点,资源会按需初始化,并且节点会按正常启动时间响应。
要求
快速启动节点无需进行其他配置。如果您的工作负载使用兼容的配置,GKE 会自动使用快速启动节点。您必须满足以下所有要求才能使用快速启动节点:
- 使用 Autopilot 集群,或在 Standard 集群中以 Autopilot 模式运行工作负载。
- 使用快速发布渠道。
使用以下任何兼容的计算资源,最大兼容启动磁盘大小为 500 GiB:
- NVIDIA L4 GPU(G2 系列机器)
使用
pd-balanced
启动磁盘类型。不使用任何与快速启动节点不兼容的功能。如需了解详情,请参阅限制。
限制
以下功能与快速启动的 GKE 节点不兼容。如果您使用以下任何功能,GKE 会预配具有常规启动时间的节点:
- GKE 版本低于 1.31 的 G2 机器系列。
- GKE 版本低于 1.33.0-gke.1304000 并且具有
DEFAULT
GPU 驱动程序版本的 G2。 - GKE 版本低于 1.33.2-gke.1015000 的辅助启动磁盘。
- 客户管理的加密密钥 (CMEK)
- Spot 虚拟机
- 本地 SSD
- 布置政策
- 多网络支持
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 模式”部分。