前言

Kubernetes 集群中 Docker 如何使用 GPU,请看这一篇

docker配置Nvidia环境,使用GPU

本文着重讲 Containerd 如何作为容器运行时来使用 GPU

CRI Plugin Config Guide CRI 插件配置指南 https://github.com/containerd/containerd/blob/main/docs/cri/config.md

nvidia-container-runtime

nvidia-container-runtime 是在 runc 基础上多实现了 nvidia-container-runime-hook (现在叫 nvidia-container-toolkit),该 hook 是在容器启动后(Namespace 已创建完成),容器自定义命令( Entrypoint )启动前执行。当检测到 NVIDIA_VISIBLE_DEVICES 环境变量时,会调用 libnvidia-container 挂载 GPU DeviceCUDA Driver。如果没有检测到 NVIDIA_VISIBLE_DEVICES 就会执行默认的 runc

设置 repositoryGPG key

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-container-runtime/$(. /etc/os-release;echo $ID$VERSION_ID)/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list

开始安装 nvidia-container-runtime

apt install nvidia-container-runtime -y

配置 Containerd 使用 Nvidia container runtime

如果 /etc/containerd 目录不存在,就先创建它:

mkdir /etc/containerd

生成默认配置:

containerd config default > /etc/containerd/config.toml

Kubernetes 使用设备插件(Device Plugins) 来允许 Pod 访问类似 GPU 这类特殊的硬件功能特性,但前提是默认的 OCI runtime 必须改成 nvidia-container-runtime,需要修改的内容如下:

[plugins."io.containerd.grpc.v1.cri"]
[plugins."io.containerd.grpc.v1.cri".containerd]
default_runtime_name = "nvidia-container-runtime" # 修改为nvidia-container-runtime
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2" # 修改为io.containerd.runc.v2
# 新增以下
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia-container-runtime]
runtime_type = "io.containerd.runtime.v1.linux"
runtime_engine = "/usr/bin/nvidia-container-runtime"

重启 containerd 服务:

systemctl restart containerd
systemctl status containerd

确定 containerd 状态没有问题,配置成功

接下来部署 NVIDIA GPU 设备插件,nvidia-device-plugin

Containerd 配置使用 Nvidia container runtime的更多相关文章

  1. [笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程

    之前写的[笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程已经out了,以这篇为准. Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心 ...

  2. nvidia-docker2配置与NVIDIA驱动安装

    要运行高版本的GPU版TensorFlow,需要更新宿主机的显卡驱动(本文以NVIDIA390为例) 一.更新驱动 禁用nouveau驱动: 添加/etc/modprobe.d/blacklist.c ...

  3. Kubernetes 教程:在 Containerd 容器中使用 GPU

    原文链接:https://fuckcloudnative.io/posts/add-nvidia-gpu-support-to-k8s-with-containerd/ 前两天闹得沸沸扬扬的事件不知道 ...

  4. containerd与kubernetes集成

    kubernetes集群三步安装 概念介绍 cri (Container runtime interface) cri is a containerd plugin implementation of ...

  5. docker 使用 Nvidia 显卡

    docker19.03读取NVIDIA显卡 作者: 张首富 时间: 2019-09-06 w x: y18163201 前言 2019年7月的docker 19.03已经正式发布了,这次发布对我来说有 ...

  6. k8s入坑之路(3)containerd容器

    containerd概念: containerd主要是namebases与k8s docker不同 存放路径不一致 没有默认仓库 容器运行时: 2020年未kubernetes宣布不再支持docker ...

  7. containerd与kubernetes集成部署

    概念介绍 cri (Container runtime interface) cri is a containerd plugin implementation of Kubernetes conta ...

  8. kubernetes集成GPU原理

    这里以Nvidia GPU设备如何在Kubernetes中管理调度为例研究, 工作流程分为以下两个方面: 如何在容器中使用GPU Kubernetes 如何调度GPU 容器中使用GPU 想要在容器中的 ...

  9. 从0开始部署GPU集群-0:基本情况

    配置信息(多台服务器) 1 硬件:CPU和GPU*可选 2 操作系统:centos7 3 驱动:nvidia显卡驱动  *可选 4 容器运行时:docker 和 nvidia container ru ...

  10. 创建可以运行宿主机GPU的容器

    1.安装NVIDIA Container Runtime apt-get参考https://blog.csdn.net/li_ellin/article/details/107180516 yum参考 ...

随机推荐

  1. 国产系统中标麒麟neokylin上的视频监控系统

    一.功能特点 (一)软件模块 视频监控模块,各种停靠小窗体子模块,包括设备列表.图文警情.窗口信息.云台控制.预置位.巡航设置.设备控制.悬浮地图.网页浏览等. 视频回放模块,包括本地回放.远程回放. ...

  2. UML之修饰符

    1.可见性修饰符 面向对象思想中有一个重要概念是封装,封装意味着对象中成员的"可见性"是不同的.这里的对象通常指类和包,而它们的可见性通过可见性修饰符进行定义. 在UML中,类对象 ...

  3. 鸿蒙ArkUI-X简介

    ArkUI是一套构建分布式应用的声明式UI开发框架.它具备简洁自然的UI信息语法.丰富的UI组件.多维的状态管理,以及实时界面预览等相关能力,帮助您提升应用开发效率,并能在多种设备上实现生动而流畅的用 ...

  4. spark (四) RDD概念

    目录 1. RDD基本概念 1.1 弹性 1.2 分布式 1.3 数据集 1.4 数据抽象 1.5 不可变 1.6 可分区.并行计算 2. WordCount为例,看RDD特性 3. RDD的五大属性 ...

  5. 2022 年数据科学研究综述:重点介绍 ML、DL、NLP 等

    2022 年数据科学研究综述:重点介绍 ML.DL.NLP 等 当我们在 2022 年底临近时,我对许多著名研究小组完成的所有惊人工作感到振奋,他们将 AI.机器学习.深度学习和 NLP 的状态扩展到 ...

  6. Verilog5_有限状态机

    一.有限状态机(Finite State Machine, FSM)基本概念 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路:         其状态只能在同一时钟跳变沿从一个状态转向另一个状态: ...

  7. [LC1260]二维网格迁移

    二维网格迁移 题目描述 给你一个 m 行 n 列的二维网格 grid 和一个整数 k.你需要将 grid 迁移 k 次. 每次「迁移」操作将会引发下述活动: 位于 grid[i][j] 的元素将会移动 ...

  8. 20250110-FortuneWheel 攻击事件:竟然不设滑点,那就体验一下 Force Investment 吧

    背景信息 攻击交易:https://app.blocksec.com/explorer/tx/bsc/0xd6ba15ecf3df9aaae37450df8f79233267af41535793ee1 ...

  9. 数据库数据实时采集--Maxwell

    1.Maxwell 简介 Maxwell 是一个能实时读取 MySQL 二进制日志文件binlog,并生成 Json格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redi ...

  10. 隐私集合求交(PSI)-多方

    本文主要讲解一个多方的PSI协议,文章转载:隐私计算关键技术:多方隐私集合求交(PSI)从原理到实现以及多方隐私求交--基于OPPRF的MULTI-PARTY PSI:原论文:Practical Mu ...