如何在Kubernetes中为Docker容器指定CPU/GPU资源需求?
在Kubernetes中为容器指定CPU与GPU资源需求
CPU资源配置
在Kubernetes的Pod配置里,你可以通过resources字段下的requests(资源请求)和limits(资源限制)来定义CPU资源:
requests:调度器用来筛选合适节点的最小CPU资源保障limits:容器允许使用的CPU资源上限
示例YAML片段:
apiVersion: v1 kind: Pod metadata: name: cpu-demo-pod spec: containers: - name: cpu-demo-container image: nginx resources: requests: cpu: "100m" # 0.1核CPU,m代表毫核单位 limits: cpu: "500m" # 最多使用0.5核CPU
GPU资源配置
Kubernetes本身没有内置GPU资源的默认声明,需要集群先部署对应厂商的设备插件(比如NVIDIA GPU设备插件)才能识别GPU资源。配置时使用厂商定义的资源名,比如NVIDIA GPU对应的nvidia.com/gpu:
完整Pod配置示例:
apiVersion: v1 kind: Pod metadata: name: gpu-demo-pod spec: containers: - name: gpu-demo-container image: nvidia/cuda:11.8.0-runtime-ubuntu22.04 resources: requests: nvidia.com/gpu: 1 # 请求1块GPU limits: nvidia.com/gpu: 1 # 限制使用1块GPU
注意事项:
- GPU的
requests和limits必须设置为相同值,Kubernetes不支持GPU资源的超额分配 - 不同厂商的GPU资源名存在差异,比如AMD GPU使用
amd.com/gpu,需根据集群实际配置调整
内容的提问来源于stack exchange,提问作者Sergio
相关产品推荐
相关产品推荐

