GPU主機安裝CUDA驅動并加入Kubernetes集群

一袄膏、Ubuntu主機安裝Nvidia CUDA 驅動

本小節(jié)參考NVIDIA Driver Installation Quickstart Guide :: NVIDIA Tesla Documentation
本節(jié)敘述如何使用包管理器在 Ubuntu 16.04 LTS 和 Ubuntu 18.04 LTS 發(fā)行版上安裝 NVIDIA 驅動程序。

  1. NVIDIA 驅動程序在安裝時需要依賴當前內核版本的linux kernel header和開發(fā)包蜓斧。例如呵晨,linux 內核是 4.4.0牍汹,則必須安裝 linux-headers-4.4.0璧亚。
    $ sudo apt-get install linux-headers-$(uname -r)
    
  2. 確保 CUDA 軟件源上的包優(yōu)先于Canonical軟件源
    $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
    $ wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.pin
    $ sudo mv cuda-$distribution.pin /etc/apt/preferences.d/cuda-repository-pin-600
    
  3. 安裝 CUDA 軟件源的GPG公鑰
    $ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/7fa2af80.pub
    
  4. 安裝 CUDA 軟件源
    $ echo "deb http://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list
    
  5. 更新 APT 緩存并使用 CUDA 軟件源安裝驅動程序砰识。可以使用 --no-install-recommends 選項安裝簡化版驅動程序块茁,無需任何 X 依賴齿坷。這對于云實例上的 headless 安裝特別有用。
    $ sudo apt-get update
    $ sudo apt-get -y install cuda-drivers
    
  6. 驗證nVidia驅動安裝結果
    $ nvidia-smi 
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 455.38       Driver Version: 455.38       CUDA Version: 11.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  GeForce RTX 208...  Off  | 00000000:3B:00.0 Off |                  N/A |
    | 30%   28C    P8    17W / 250W |      0MiB / 11019MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    |   1  GeForce RTX 208...  Off  | 00000000:AF:00.0 Off |                  N/A |
    | 30%   25C    P8    12W / 250W |      0MiB / 11019MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

二、安裝Docker與NVIDIA Container Toolkit

本小節(jié)參考Installation Guide - NVIDIA Cloud Native Technologies documentation

  1. 安裝Docker
    $ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    
  2. 添加nvidia-docker軟件源與對應GPG 公鑰
    $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    
  3. 安裝nvidia-docker2
    $ sudo apt-get update
    $ sudo apt-get install -y nvidia-docker2
    
  4. Docker 的默認運行時改為 nvidia-container-runtime胃夏,而不是 runc
    $ vim /etc/docker/daemon.json
    {
     "default-runtime": "nvidia",
     "runtimes": {
         "nvidia": {
             "path": "nvidia-container-runtime",
             "runtimeArgs": []
         }
     },
     "registry-mirrors": ["https://hub-mirror.c.163.com"]
    }
    
  5. 重啟 Docker Engine
    $ systemctl restart docker
    
  6. 驗證 nvidia-docker
    $ docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 455.38       Driver Version: 455.38       CUDA Version: 11.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  GeForce RTX 208...  Off  | 00000000:3B:00.0 Off |                  N/A |
    | 30%   27C    P8    17W / 250W |      0MiB / 11019MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    |   1  GeForce RTX 208...  Off  | 00000000:AF:00.0 Off |                  N/A |
    | 30%   25C    P8    14W / 250W |      0MiB / 11019MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

三轴或、添加主機到Kubesphere集群

  1. 修改config-sample.yaml昌跌,添加GPU主機到配置文件
    $ vim config-sample.yaml
    
  2. 使用kubekey根據配置文件自動化加入節(jié)點到Kubesphere集群
    $ ./kk add nodes -f config-sample.yaml
    
  3. 設置節(jié)點標簽仰禀,打上GPU節(jié)點標簽
    圖形化操作,參考 Kubesphere - 節(jié)點管理
  4. 在Kubesphere集群安裝k8s-device-plugin插件
    參考 調度 GPUs | Kubernetes
    $ kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta4/nvidia-device-plugin.yml
    
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蚕愤,一起剝皮案震驚了整個濱河市答恶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌萍诱,老刑警劉巖悬嗓,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異裕坊,居然都是意外死亡包竹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門籍凝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來周瞎,“玉大人,你說我怎么就攤上這事饵蒂∩睿” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵退盯,是天一觀的道長彼乌。 經常有香客問我,道長渊迁,這世上最難降的妖魔是什么慰照? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮琉朽,結果婚禮上焚挠,老公的妹妹穿的比我還像新娘。我一直安慰自己漓骚,他們只是感情好蝌衔,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝌蹂,像睡著了一般噩斟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孤个,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天剃允,我揣著相機與錄音,去河邊找鬼。 笑死斥废,一個胖子當著我的面吹牛椒楣,可吹牛的內容都是我干的。 我是一名探鬼主播牡肉,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼捧灰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了统锤?” 一聲冷哼從身側響起毛俏,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饲窿,沒想到半個月后煌寇,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡逾雄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年阀溶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸦泳。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡银锻,死狀恐怖,靈堂內的尸體忽然破棺而出辽故,到底是詐尸還是另有隱情徒仓,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布誊垢,位于F島的核電站掉弛,受9級特大地震影響,放射性物質發(fā)生泄漏喂走。R本人自食惡果不足惜殃饿,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芋肠。 院中可真熱鬧乎芳,春花似錦、人聲如沸帖池。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睡汹。三九已至肴甸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囚巴,已是汗流浹背原在。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工友扰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庶柿。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓村怪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親浮庐。 傳聞我的和親對象是個殘疾皇子甚负,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內容