<table id="qs2qo"></table>
  • <bdo id="qs2qo"><center id="qs2qo"></center></bdo>
    • 自動秒收錄
    • 軟件:1973
    • 資訊:56157|
    • 收錄網站:175404|

    IT精英團

    如何讓Kubernetes集群優雅地使用GPU節點

    如何讓Kubernetes集群優雅地使用GPU節點

    瀏覽次數:
    評論次數:
    編輯: 澤洋
    信息來源: ITPUB
    更新日期: 2022-05-09 18:32:27
    摘要

    如何讓你的Kubernetes集群使用GPU節點CUDA驅動程序如果您還沒有這樣做,請確保您已在GPU節點上安裝了NVIDIACUDA驅動程序。CUDA是來自nvidia的并行計算平臺。ht

    • 正文開始
    • 相關閱讀
    • 推薦作品

    如何讓您的Kubernetes集群使用GPU節點

    CUDA驅動程序

    如果您還沒有這樣做,請確保您已經在GPU節點上安裝了NVIDIA CUDA驅動程序。CUDA是nvidia的并行計算平臺。

    https://docs . NVIDIA.com/cuda/cuda-安裝指南-linux/index.html

    成功安裝后,nvidia-smi終端中的命令應該提供類似的輸出。在這個節點上,我有兩個GPU。請注意,CUDA工具包的更新版本比我這里的版本更容易獲得。

    用于 Docker 的 NVIDIA 容器工具包

    下一步是為docker安裝nvidia容器套件。根據您的操作系統版本,說明可能會略有不同。如果有疑問,您可以隨時查看NVIDIA文檔。

    https://docs . NVIDIA.com/data center/cloud-native/kubernetes/DCG me2e . html # install-NVIDIA-container-toolkit-previous-NVIDIA-docker 2

    $distribution=$(。/etc/OS-release;echo$ID$VERSION_ID)

    $ curl-s-l https://NVIDIA . github . io/NVIDIA-docker/$ distribution/NVIDIA-docker . repo | sudo tee/etc/yum . repos . d/NVIDIA-docker . repo

    $yumupdate

    $yuminstall-ynvidia-docker2

    我們需要將docker的默認容器運行時改為nvidia。我們可以編輯文件/etc/docker/daemon.jsonfile并更改缺省運行時。

    {

    默認-運行時' :'nvidia ',

    運行時' :{

    nvidia':{

    路徑' :'/usr/bin/nvidia-

    container-runtime", 
                "runtimeArgs": [] 
            } 
        } 
    }

    是時候重新啟動 docker以使更改生效。

    $ systemctl daemon-reload
    $ systemctl restart docker

    現在我們可以通過運行 nvidia 提供的簡單鏡像來測試我們的 docker 環境。

    $ docker run --rm -it nvcr.io/nvidia/cuda:10.2-base nvidia-smi

    您應該會看到與此類似的輸出。如上所述,您當然可以將來自 nvidia的 docker 鏡像與更高版本的  cuda 工具包一起使用。

    用于 Kubernetes 的 NVIDIA 設備插件

    我們驗證了 docker 環境已成功配置為支持 GPU加速容器。我們只需再邁出一步,我們也將為 Kubernetes 設置做好準備。讓我們安裝 NVIDIA 設備插件,以便我們的 Kubernetes 集群可以使用 GPU。最簡單的方法是使用helm安裝這個插件。如果沒有 helm,安裝也很簡單。轉到您的主節點并執行以下應安裝 helm 的命令。

    $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 \
       && chmod 700 get_helm.sh \
       && ./get_helm.sh

    您將看到 helm 已安裝。

    Downloading https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
    Verifying checksum... Done.
    Preparing to install helm into /usr/local/bin
    helm installed into /usr/local/bin/helm

    我們將 nvidia設備插件添加到helm存儲庫。

    $ helm repo add nvdp https://nvidia.github.io/k8s-device-plugin \
       && helm repo update
      

    現在讓我們安裝插件。

    $ helm install --generate-name nvdp/nvidia-device-plugin

    您可以通過檢查kube-system命名空間中的 pod來驗證已安裝的插件。

    $ kubectl get pods -n kube-system|grep -i nvidia
    nvidia-device-plugin-daemonset-tl268                      1/1     Running   3          4h
    nvidia-device-plugin-daemonset-v2dn8                      1/1     Running   8          4h

    測試一下

    讓我們測試我們的 Kubernetes 設置。為此,讓我們創建一個 yaml 部署文件,例如,gpudemo-vectoradd.yaml包含以下內容。我們正在使用運行 GPU 的 nvidia cuda 示例容器。

    apiVersion: v1
    kind: Pod
    metadata:
      name: gpu-demo-vectoradd
    spec:
      restartPolicy: OnFailure
      containers:
      - name: cuda-vector-add
        image: "nvidia/samples:vectoradd-cuda10.2"
        resources:
          limits:
             nvidia.com/gpu: 1

    部署我們的 yaml文件。

    $ kubectl apply -f gpudemo-vectoradd.yaml

    檢查Pod。

    $ kubectl get pods |grep gpu
    gpu-demo-vectoradd               /1     Completed             13s

    檢查日志。它應該是這樣的。

    $ kubectl logs gpu-demo-vectoradd
    [Vector addition of 50000 elements]
    Copy input data from the host memory to the CUDA device
    CUDA kernel launch with 196 blocks of 256 threads
    Copy output data from the CUDA device to the host memory
    Test PASSED
    Done

    我們驗證了Kubernetes集群設置為運行GPU加速容器!在下一篇文章中,讓我們看看如何暴露和監控這些GPU指標。

    參考資料

    [1]

    參考地址: https://medium.com/@rajupavuluri/how-to-enable-your-kubernetes-cluster-to-use-gpu-nodes-1b2771b4a7f6



    本文轉載自:「云原生CTO」,原文:https://tinyurl.com/3nu9yuup,版權歸原作者所有。



    Linux最常用的命令:解決95%以上的問題
    ? 上一篇 2022-05-09
    詳細解釋Linux中的diff命令和例子
    下一篇 ? 2022-05-09
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    • 記得服務器被黑過一次 沒想到能輕松搞定~
      1閱讀 0條評論 個贊
      常在河邊走,哪能不濕鞋。自認為安全防范意識不錯,沒想到服務器被入侵挖礦的事情也能落到自己頭上。本文簡要記錄發現服務器被入侵挖礦的過程,同時分析木馬的痕跡和信息,最后給出解決方法。服務器被入侵挖礦過程事……
    • 1972年的C語言 控制了Windows、Linux、macOS等操作系統的半邊天
      1閱讀 0條評論 個贊
      來源|CSDN(ID:CSDNnews)誕生于1972年的C語言已經50歲了,目前來看,它還像20歲的小伙一樣活力四射,似乎永不會退休,并且正在賦能全世界重量級應用系統的運行。盡管C語言面世多年,……
    • Python極簡編碼規范
      1閱讀 0條評論 個贊
      本文是閱讀《PythonCodingRule》之后總結的最為精華及簡單的編碼規范,根據每個人不同喜好有些地方會有不同的選擇,我只是做了對自己來說最簡單易行的選擇,僅供大家參考。1、重要原則a.保持……
    • Python字符串深度摘要
      2閱讀 0條評論 個贊
      以下文章來源于公眾號-蘿卜大雜燴,作者周蘿卜今天我們來學習字符串數據類型相關知識,將討論如何聲明字符串數據類型,字符串數據類型與ASCII表的關系,字符串數據類型的屬性,以及一些重要的字符串方法和……
    • MySQL批量插入數據 一次插入多少行數據效率最高?
      7閱讀 0條評論 個贊
      一、前言我們在操作大型數據表或者日志文件的時候經常會需要寫入數據到數據庫,那么最合適的方案就是數據庫的批量插入。只是我們在執行批量操作的時候,一次插入多少數據才合適呢?假如需要插入的數據有百萬條,那……
    • MYSQL VS POLARDB唯一索引死鎖及應用設計
      1閱讀 0條評論 個贊
      #issue68021MySQLuniquecheck問題-知乎(zhihu.com)事情的開始是這樣的,最近和阿里云密切聯系,也成為他們的大客戶,(我們當然是大客戶,BIGBIG……
    • 教你如何在Linux中生成復雜的密碼 并檢查密碼強度
      0閱讀 0條評論 個贊
      在本教程中,我們將討論如何生成復雜密碼并且檢查密碼強度。生成復雜的密碼強密碼應由字母、數字和符號的混合組成。第二個要求是不要使用已知單詞、出生日期或姓名,因為很容易受到字典攻擊。密碼應該包含多少個字符……
    • 《網絡端口大全》運維必備 就看這個吧
      1閱讀 0條評論 個贊
      老楊工作8年有余,經??吹胶芏嗑W絡工程師的簡歷里寫著熟悉“tcp/ip,http等協議”,我也每次都遵從本心的問了他們:那你可以說說你理解中的端口嗎?很多人都能答得上來一部分,但很多人都難答的比較……
    • 解決緩存崩潰問題的一行代碼
      1閱讀 0條評論 個贊
      以下文章來源于公眾號-孤獨煙,作者孤獨煙引言今天,重新回顧一下緩存擊穿這個問題!之所以寫這個文章呢,因為目前網上流傳的文章落地性太差(什么布隆過濾器啊,布谷過濾器啊,嗯,你們懂的),其實這類方案并不適……
    • 誤操作離線丟棄和恢復場景測試的業務影響——來自“血”的教訓
      0閱讀 0條評論 個贊
      在數據庫恢復過程中,比如我們用了第三方的備份工具,在實施恢復操作時會導出需要的某個表空間這樣可以大大減少恢復時間,是十分值得推薦的做法,這個過程中由于修改控制文件中數據文件的相關信息,需要執行alte……
    • 如何讓Kubernetes集群優雅地使用GPU節點
      2閱讀 0條評論 個贊
      如何讓你的Kubernetes集群使用GPU節點CUDA驅動程序如果您還沒有這樣做,請確保您已在GPU節點上安裝了NVIDIACUDA驅動程序。CUDA是來自nvidia的并行計算平臺。ht……
    • MySQL 8.0如何創建規范表
      1閱讀 0條評論 個贊
      這一節內容,基于MySQL8.0版本,聊一下如何創建一張規范的表。首先貼出一張相對規范的表結構:CREATETABLEstudent_info(`id`INTNOTNULLAUTO_IN……
    • 詳細解釋Linux中的diff命令和例子
      1閱讀 0條評論 個贊
      文件比較在Linux中起著重要的作用,特別是對于程序員和Linux系統管理員。例如,如果您想找到兩個源代碼文件之間的差異來開發補丁,那么您需要一個文件比較工具來簡化這個過程。Linux中有幾……
    • 緊急情況下數據庫表被鎖 抓瞎?
      4閱讀 0條評論 個贊
      以下文章來源于公眾號-程序新視界,作者二師兄在程序員的職業生涯中,總會遇到數據庫表被鎖的情況,前些天就又撞見一次。由于業務突發需求,各個部門都在批量操作、導出數據,而數據庫又未做讀寫分離,結果就是:數……
    • 數據倉庫實踐:總線矩陣體系結構的設計
      1閱讀 0條評論 個贊
      以下文章來源于公眾號-云祁的數據江湖,作者云祁如何設計一套切實可行的數據倉庫呢?我們要明白,對于數據倉庫的設計是不能完全依賴于業務的需求,但往往又必須要服務于業務的價值。因此,在構建數據倉庫前,我們……
    • MySQL 5.7 和 8.0 幾處細節上的差異
      9閱讀 0條評論 個贊
      MySQL8.0相對于MySQL5.7,有很多新特性,比如:快速加列、原子DDL、不可見索引、額外端口、角色管理等。這一節內容,就不講這些新特性了,只來聊聊最近在工作學習過程中遇到的幾處細節……
    • Redis過期的數據會被立即刪除嗎?
      1閱讀 0條評論 個贊
      本文來源碼哥字節(ID:MageByte)?碼哥,當key達到過期時間,Redis就會馬上刪除么?先說結論:并不會立馬刪除。Redis有兩種刪除過期數據的策略:定期選取部分數據刪除;惰性刪除;……
    • 你見過的最全面的Python關鍵知識總結
      1閱讀 0條評論 個贊
      這是一份來自于SegmentFault上的開發者@二十一總結的Python重點。由于總結了太多的東西,所以篇幅有點長,這也是作者"縫縫補補"總結了好久的東西,強烈建議收藏再慢慢看~Py2……
    • Linux最常用的命令:解決95%以上的問題
      1閱讀 0條評論 個贊
      Linux是目前應用最廣泛的服務器操作系統,基于Unix,開源免費,由于系統的穩定性和安全性,市場占有率很高,幾乎成為程序代碼運行的最佳系統環境。linux不僅可以長時間的運行我們編寫的程序代碼,還可……
    • SQL優化通用公式:5個步驟和10個案例
      1閱讀 0條評論 個贊
      導讀:在應用開發的早期,數據量少,開發人員開發功能時更重視功能上的實現,隨著生產數據的增長,很多SQL語句開始暴露出性能問題,對生產的影響也越來越大,有時可能這些有問題的SQL就是整個系統性能的瓶頸?!?/div>
    最近發布資訊
    更多
    本地特级毛片,老师脱裙子让我看内裤,人妻av乱片aV出轨avApp
    <table id="qs2qo"></table>
  • <bdo id="qs2qo"><center id="qs2qo"></center></bdo>