前些年做AI项目的时候经常用到显卡,大多数时候都是传统部署,对于资源的利用率并不高,而显卡也不便宜,K8S集群内调用显卡可以更加细致地进行显卡计算资源的分配,提高资源利用率。

之前记录和显卡相关的一些笔记:

K8S 笔记(启用gpu支持)——筑梦之路_筑梦之路的博客-CSDN博客_unauthorized (401): invalid credentials provided

ubuntu 16.04 编译安装ffmpeg GPU加速_筑梦之路的博客-CSDN博客

ubuntu server lts ffmpeg gpu版编译构建过程——筑梦之路_筑梦之路的博客-CSDN博客

构建ffmpeg gpu版docker镜像 硬件加速处理视频流——筑梦之路_筑梦之路的博客-CSDN博客

这里再次进行总结归纳一下。

1. docker启用GPU支持# 修改docker配置cat /etc/docker/daemon.json
{"default-runtime": "nvidia","runtimes": {"nvidia": {"path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []}},"data-root": "/var/lib/docker","exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"],"insecure-registries": ["127.0.0.1/8"],"max-concurrent-downloads": 10,"live-restore": true,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "50m","max-file": "1"},"storage-driver": "overlay2"
}#重启docker服务systemctl  daemon-reloadsystemctl  restart docker 2. K8S中给GPU节点打上标签kubectl label nodes 192.168.10.156 nvidia.com/gpu.present=true# 检查kubectl get nodes -L nvidia.com/gpu.present3. helm安装GPU支持的插件curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -sudo apt-get install apt-transport-https --yesecho "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.listsudo apt-get update && apt-get install helmhelm install \--version=0.10.0 \--generate-name \nvdp/nvidia-device-plugin这一步比较重要,没有插件K8S无法调用GPU# 检查验证是否成功加载插件kubectl describe node 192.168.10.156 | grep nvidianvidia.com/gpu.present=truenvidia.com/gpu:     1nvidia.com/gpu:     1kube-system                 nvidia-device-plugin-1937727239-fcc2x         0 (0%)        0 (0%)      0 (0%)           0 (0%)         30snvidia.com/gpu     0           04. 创建pod测试一下#将镜像放到GPU节点上
docker pull registry.cn-beijing.aliyuncs.com/ai-samples/tensorflow:1.5.0-devel-gpudocker save -o tensorflow-gpu.tar  registry.cn-beijing.aliyuncs.com/ai-samples/tensorflow:1.5.0-devel-gpudocker load -i tensorflow-gpu.tar#pod的yamlcat gpu-test.yamlapiVersion: v1
kind: Pod
metadata:name: test-gpulabels:test-gpu: "true"
spec:containers:- name: trainingimage: registry.cn-beijing.aliyuncs.com/ai-samples/tensorflow:1.5.0-devel-gpucommand:- python- tensorflow-sample-code/tfjob/docker/mnist/main.py- --max_steps=300- --data_dir=tensorflow-sample-code/dataresources:limits:nvidia.com/gpu: 1tolerations:- effect: NoScheduleoperator: Exists# kubectl  apply -f gpu-test.yaml# 查看日志,正常调用,没有报错表示已经成功kubectl logs test-gpu

K8S中使用显卡GPU(N卡) —— 筑梦之路相关推荐

  1. K8S StatefulSet方式部署elasticsearch集群 —— 筑梦之路

    直接上yaml内容 # es-cluster.yaml apiVersion: apps/v1 # 设置控制器 kind: StatefulSet metadata:name: es-clustern ...

  2. K8S部署Traefik与Ingress、IngressRoute——筑梦之路

    两种方式: Traefik+Ingress 官方文档:Kubernetes Ingress Routing Configuration - Traefik Traefik+IngressRoute 官 ...

  3. Nginx SSL漏洞(SWEET32)扫描和修复 —— 筑梦之路

    1.扫描nmap -sV --script ssl-enum-ciphers -p 443 www.baidu.comnmap --script="ssl-enum-ciphers" ...

  4. 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路

    前面写了一些文章,关于利用官方源码编译或者制作rpm包来升级openssh,修复安全漏洞 centos 7 制作openssh8.7/8.8/8.9/9.0 p1 rpm包升级--筑梦之路_筑梦之路的 ...

  5. 时间同步设置NTP和Chrony两种方式—— 筑梦之路

    之前写的:Chrony时间同步服务器的搭建--筑梦之路_筑梦之路的博客-CSDN博客_搭建chrony服务器 linux 下部署NTP服务器 时间同步_筑梦之路的博客-CSDN博客 操作系统:cent ...

  6. CentOS 8 安装freePBX 软交换电话软件——筑梦之路

    简单介绍: Freepbx是一个集成了Asterisk的工具,提供GUI (graphical user interface)用户图形界面.通过Freepbx可以十分方便的配置各类电话系统.由于Ast ...

  7. K8S的服务质量QoS —— 筑梦之路

    K8S中的应用服务质量(QoS)介绍 服务质量(QoS)类是Kubernetes的概念,它确定Pod的调度和驱逐优先级 Kubelet使用它来管理驱逐pod的顺序,以及使用高级CPU管理策略允许更复杂 ...

  8. K8S DiskPressure造成pod被驱逐——筑梦之路

    现象以及排查过程: k8s集群某个节点上的pod状态为Evicted,无cni0 flannel.1虚拟网口 使用命令kubectl delete pod xxx 重启该pod,无日志输出,状态不变 ...

  9. K8S之taint\cordon\uncordon\drain使用案例——筑梦之路

    作用介绍:taint: 污点(查看污点.设置污点.取消污点) cordon: 封锁:标记节点不可调度 uncordon: 标记节点可以调度: drain: 驱逐节点上的pod如果一个node被标记为c ...

最新文章

  1. php动态生成apk渠道包,Android自动生成渠道包
  2. matlab 中all和any函数
  3. 网络营销外包中那些超有效的网络营销方法有进一步了解过吗?
  4. 4.Spring Cloud Alibaba教程:Nacos配置管理
  5. HDFS的API操作-访问权限问题
  6. c++ 结构体初始化_单片机C语言 - 基于结构体的面向对象编程技巧
  7. 如何获取Oracle存储过程中的参数名称、类型?
  8. getElement四种方法返回的不同
  9. 编译环境 Golang开发环境 vscode+git
  10. < 数据结构 > 树与二叉树
  11. java list 取第一个,从Java LinkedList获取第一个和最后一个元素
  12. 云服务器bcc搭建网站,云服务器BCC(Baidu Cloud Compute)介绍
  13. 这两款iPhone不要升级iOS14.5.1 ,将会被降频!
  14. 【烈日炎炎战后端】计算机网络(4.2万字)
  15. 学习笔记:C++进阶【继承、多态、二叉树进阶、map和set、哈希、C++11、异常、智能指针、特殊类设计、C++的类型转换】
  16. 高质量程序设计指南C++学习总结二
  17. PhotoMOS输出光电耦合器的概要
  18. Adapter的作用及用法
  19. spring boot 代理(not eligible for auto-proxying)
  20. 解决ie浏览器el-select选择后出现光标的问题

热门文章

  1. Hybrid端口的工作原理
  2. 小米官宣:手表Color 2来了,6色多彩表带,你喜欢哪个?
  3. 刚毕业的小白想学软件测试,有没有好的机构推荐呢?
  4. leetcode 174:地下城游戏
  5. 1.5-瑞吉外卖-第五天
  6. 下载了突袭:资源战争
  7. 【系统分析师之路】第五章 数据通信与计算机网络
  8. 视觉软件 VisionPro 定位引导3(卡尺CogFindLineTool工具以及辅助工具)
  9. 微信公众号--订阅通知
  10. 【微信H5】分享出去是链接,不是卡片的原因及解决方案