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

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ù)公司
天天日夜夜操人人干人人插 | 极品性感尤物少妇粉嫩逼| 十八女毛片一区二区三区| 亚洲精品视频久久偷拍| 清纯唯美亚洲自拍第一页| 欧美 成人一区二区三区| 国产一区欧美二区日韩三区| 亚洲精品一区二区三区高清| 亚洲性图中文字幕在线| 亚洲av成人av天堂| 蜜臀av一区二区三区人妻| 国模一区二区三区视频| 亚洲一区二区三区伊人| 在线看电影亚洲一区| 国产大片久久午夜电影| 老司机午夜视频在线观看| 亚洲一区二区三区伊人| 国产区二区三区在线视频| 一区二区三区毛片免费| 在线激情av中文字幕| 日韩欧美中文字幕综合网| 性生活视性生活大片日本 | 国产美女主播在线精品一区| 欧美一区二区高清不卡| 热久久青草精品欧美一区| 九九在线视频免费观看精品视频| 粉嫩av北条麻妃电影| 密臀精品国产一区二区| 青青草视频免费观看高清在线观看新 | 暖暖免费中文高清日本三区| 欧美高清视频免费播放| 日韩美少妇大胆一区二区| 日韩成人午夜视频在线| 色老头视频一区二区三区| 一区二区三区国产不卡| 国产一级黄色性生活片| 亚洲大乳大丰满中文字幕| 国产精品国产精品无卡区| 亚洲超清av在线播放一区二区| 久久精品国产亚洲av清纯| 手机免费在线观看国产精品|