You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GKE GPU分时调度问题:工作负载无法调度至启用节点

解决GKE GPU分时调度Pod调度失败问题

核心问题

GKE节点不会自动生成cloud.google.com/gke-max-shared-clients-per-gpu和cloud.google.com/gke-gpu-sharing-strategy这两个标签,因此Pod通过这两个标签做硬匹配时,必然会出现节点不匹配的情况。

具体解决方案

1. 替换nodeSelector为节点亲和性(Node Affinity)

改用存在的节点标签做匹配,同时确保选中启用GPU共享的节点:

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: cloud.google.com/gke-accelerator
          operator: In
          values:
          - nvidia-tesla-t4
        - key: cloud.google.com/gke-gpu-sharing-enabled
          operator: Exists

这个配置会筛选出带T4 GPU且启用了GPU共享的节点,无需指定共享策略和客户端上限——节点池已配置的分时规则会自动应用到Pod上。

2. 验证节点池GPU共享配置

用gcloud命令确认节点池的配置是否正确生效:

gcloud container node-pools describe [你的节点池名称] --cluster [你的集群名称] --zone [集群所在区域]

查看输出中acceleratorConfig.gpuSharingConfig字段,确认sharingStrategy为TIME_SHARING、maxSharedClientsPerGpu为48。

3. 配置正确的GPU资源请求

确保Pod的GPU请求符合共享模式的格式,比如请求1/48个GPU:

resources:
  requests:
    nvidia.com/gpu: "0.0208"  # 等价于1/48,部分版本支持直接写"1/48"
  limits:
    nvidia.com/gpu: "0.0208"

这种分数形式的请求会让Kubernetes识别出这是共享GPU的工作负载,自动调度到对应节点。

4. 放弃使用不存在的标签

GKE的GPU共享策略、最大客户端数属于节点池的配置属性,不会暴露为节点标签,文档中的nodeSelector示例存在误导,实际无需配置这两个标签的匹配规则。


内容的提问来源于stack exchange,提问作者Murcielago

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:22:20