欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Kubernetes的DevicePlugin設(shè)計是怎樣的

本文小編為大家詳細(xì)介紹“Kubernetes的Device Plugin設(shè)計是怎樣的”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Kubernetes的Device Plugin設(shè)計是怎樣的”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

從2013年創(chuàng)立成都創(chuàng)新互聯(lián)公司專注于”幫助中小企業(yè)+互聯(lián)網(wǎng)”, 也是目前成都地區(qū)具有實(shí)力的互聯(lián)網(wǎng)服務(wù)商。團(tuán)隊致力于為企業(yè)提供--站式網(wǎng)站建設(shè)、移動端應(yīng)用( H5手機(jī)營銷、成都App定制開發(fā)、微信開發(fā))、軟件開發(fā)、信息化解決方案等服務(wù)。

Kubernetes的Device Plugin設(shè)計解讀

最近在調(diào)研Kubernetes的GPU調(diào)度和運(yùn)行機(jī)制,發(fā)現(xiàn)傳統(tǒng)的alpha.kubernetes.io/nvidia-gpu即將在1.11版本中下線,和GPU相關(guān)的調(diào)度和部署的代碼將徹底從主干代碼中移除。

取而代之的是通過Extended Resource+Device Plugin兩個Kubernetes的內(nèi)置模塊,外加由設(shè)備提供商實(shí)現(xiàn)的相應(yīng)Device Plugin, 完成從設(shè)備的集群級別調(diào)度至工作節(jié)點(diǎn),到設(shè)備與容器的實(shí)際綁定。

首先思考的第一個問題是為什么進(jìn)入alpha.kubernetes.io/nvidia-gpu主干一年之久的GPU功能徹底移除?

  1. OutOfTree是Kubernetes一個很好的理念,之前的Cloud Provider的重構(gòu)也是類似的工作。對于Kubernetes來說,不做瑞士軍刀,專注于自身核心和通用能力,而將像GPU,InfiniBand,FPGA和公共云能力的工作完全交給社區(qū)和領(lǐng)域?qū)<?。這樣一方面可以降低軟件自身使用的復(fù)雜度,減小穩(wěn)定性風(fēng)險,另外OutOfTree分開迭代也能夠更靈活實(shí)現(xiàn)的功能升級。

  2. 而開放的軟件架構(gòu)設(shè)計和標(biāo)準(zhǔn)也調(diào)動了社區(qū)參與的積極性,而活躍的社區(qū)其實(shí)是Kubernetes打贏容器調(diào)度框架之戰(zhàn)的核心法寶。

先來簡要介紹一下kubernetes這兩個模塊:

  • Extended Resource: 一種自定義資源擴(kuò)展的方式,將資源的名稱和總數(shù)量上報給API server,而Scheduler則根據(jù)使用該資源pod的創(chuàng)建和刪除,做資源可用量的加減法,進(jìn)而在調(diào)度時刻判斷是否有滿足資源條件的節(jié)點(diǎn)。目前這里的Extended Resource的增加和減少單元必須是整數(shù),比如你可以分配1個GPU,但是不能分配0.5個GPU。該功能由于只是替代了Opaque integer resources,做了些更名的工作,所以在1.8已經(jīng)是穩(wěn)定的狀態(tài)了。但是當(dāng)integer這個關(guān)鍵詞被移除,也引發(fā)我們的想象,未來會不會有0.5存在的可能性?

  • Device Plugin:通過提供通用設(shè)備插件機(jī)制和標(biāo)準(zhǔn)的設(shè)備API接口。這樣設(shè)備廠商只需要實(shí)現(xiàn)相應(yīng)的API接口,無需修改Kubelet主干代碼,就可以實(shí)現(xiàn)支持GPU、FPGA、高性能 NIC、InfiniBand 等各種設(shè)備的擴(kuò)展。該能力在Kubernetes 1.8和1.9版本處于Alpha版本,在1.10會進(jìn)入Beta版本。

應(yīng)該說這個功能目前還比較新,需要通過feature gate打開, 即配置 --feature-gates=DevicePlugins=true

Device Plugin的設(shè)計:

API設(shè)計:

實(shí)際上Device plugins實(shí)際上是簡單的grpc server,需要實(shí)現(xiàn)以下兩個方法 ListAndWatchAllocate,并監(jiān)聽在/var/lib/kubelet/device-plugins/目錄下的Unix Socket,比如/var/lib/kubelet/device-plugins/nvidia.sock

service DevicePlugin {
    // returns a stream of []Device
    rpc ListAndWatch(Empty) returns (stream ListAndWatchResponse) {}
    rpc Allocate(AllocateRequest) returns (AllocateResponse) {}
}

其中:

  • ListAndWatch: Kubelet會調(diào)用該API做設(shè)備發(fā)現(xiàn)和狀態(tài)更新(比如設(shè)備變得不健康)

  • Allocate: 當(dāng)Kubelet創(chuàng)建要使用該設(shè)備的容器時, Kubelet會調(diào)用該API執(zhí)行設(shè)備相應(yīng)的操作并且通知Kubelet初始化容器所需的device,volume和環(huán)境變量的配置。

插件生命周期管理:

  • 插件啟動時,以grpc的形式通過/var/lib/kubelet/device-plugins/kubelet.sock向Kubelet注冊,同時提供插件的監(jiān)聽Unix Socket,API版本號和設(shè)備名稱(比如nvidia.com/gpu)。Kubelet將會把這些設(shè)備暴露到Node狀態(tài)中,以Extended Resource的要求發(fā)送到API server中,后續(xù)Scheduler會根據(jù)這些信息進(jìn)行調(diào)度。

  • 插件啟動后,Kubelet會建立一個到插件的listAndWatch長連接,當(dāng)插件檢測到某個設(shè)備不健康的時候,就會主動通知Kubelet。此時如果這個設(shè)備處于空閑狀態(tài),Kubelet就會將其挪出可分配列表;如果該設(shè)備已經(jīng)被某個pod使用,Kubelet就會將該P(yáng)od殺掉

  • 插件啟動后可以利用Kubelet的socket持續(xù)檢查Kubelet的狀態(tài),如果Kubelet重啟,插件也會相應(yīng)的重啟,并且重新向Kubelet注冊自己

Kubernetes的Device Plugin設(shè)計是怎樣的

部署方式

一般可以支持daemonset和非容器化的部署,目前官方推薦使用deamonset部署。

實(shí)現(xiàn)樣例

Nvidia 的官方GPU插件

NVIDIA 提供了一個基于 Device Plugins 接口的 GPU 設(shè)備插件NVIDIA/k8s-device-plugin, 從用戶角度變得更加簡單了。比起傳統(tǒng)的alpha.kubernetes.io/nvidia-gpu, 不再需要使用volumes指定CUDA需要使用的庫。

apiVersion: apps/v1
kind: Deployment

metadata:
  name: tf-notebook
  labels:
    app: tf-notebook

spec:

  template: # define the pods specifications
    metadata:
      labels:
        app: tf-notebook

    spec:
      containers:
      - name: tf-notebook
        image: tensorflow/tensorflow:1.4.1-gpu-py3
        resources:
          limits:
            nvidia.com/gpu: 1

Google GCP GPU插件

GCP也提供了一個GPU設(shè)備插件實(shí)現(xiàn),但是只支持運(yùn)行在Google Container Engine的平臺上,可以通過container-engine-accelerators了解

Solarflare NIC 插件

網(wǎng)卡造商Solarflare也實(shí)現(xiàn)了自己的設(shè)備插件sfc-device-plugin, 可以通過demo體驗(yàn)用戶感受。

讀到這里,這篇“Kubernetes的Device Plugin設(shè)計是怎樣的”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:Kubernetes的DevicePlugin設(shè)計是怎樣的
網(wǎng)站地址:http://aaarwkj.com/article0/ipojoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、用戶體驗(yàn)、響應(yīng)式網(wǎng)站企業(yè)網(wǎng)站制作、App設(shè)計、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
日韩中文字幕在线有码| 成人黄色18免费网站| 亚洲国产欧美日韩在线一区| 亚洲奇米精品一区二区| 国产91精品激烈高潮白浆| 欧美日韩亚洲精品三级| 久久精品一区二区三区不卡| 亚洲精品成人综合色在线| 91午夜福利偷拍视频| 懂色粉嫩蜜臀久久一区二区| 日本精品免费专区在线观看| 日本韩国亚洲欧美一区二区| 日韩视频在线一区二区三区| 成人av免费高清在线| 我想看亚洲一级黄色录像| av蜜臀一区二区三区| 尤物视频官网在线观看| 国产三级在线视频不卡| 亚洲国产日本一区自拍| 日韩免费av在线观看| 成人一区二区三区播放| 亚洲精品一品区二品区三区| av在线高清免费观看| 亚洲午夜精品一区二区久久| 欧美国产综合欧美一区二区三区 | 日韩欧美精品视频一区| 国产一区二区欧美精品| 中文一级伦理一区二区| 日本一区中文字幕怎么用| 亚洲午夜激情视频在线| 久久精品国产普通话对白| 国产看片色网站亚洲av| 久久久久久极精品久久久| 亚洲国产成人91精品| 久久热这里只有精品网站| 中文字幕欧美人妻在线| 国产精品亚洲精品日韩在线| 久草国产免费福利在线视频| 成年人午夜在线观看网址| 国产乱来视频在线观看| 亚洲少妇插进去综合网|