中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Containerd的特性有哪些

發布時間:2021-12-20 09:44:07 來源:億速云 閱讀:271 作者:iii 欄目:云計算

本篇內容主要講解“Containerd的特性有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Containerd的特性有哪些”吧!

Containerd概述

Containerd的特性有哪些

“早在16年3月,Docker 1.11的Docker Engine里就包含了containerd,而現在則是把containerd從Docker Engine里徹底剝離出來,作為一個獨立的開源項目獨立發展,目標是提供一個更加開放、穩定的容器運行基礎設施。和原先包含在Docker Engine里containerd相比,獨立的containerd將具有更多的功能,可以涵蓋整個容器運行時管理的所有需求。

containerd并不是直接面向最終用戶的,而是主要用于集成到更上層的系統里,比如Swarm, Kubernetes, Mesos等容器編排系統。containerd以Daemon的形式運行在系統上,通過unix domain docket暴露很低層的gRPC API,上層系統可以通過這些API管理機器上的容器。每個containerd只負責一臺機器,Pull鏡像,對容器的操作(啟動、停止等),網絡,存儲都是由containerd完成。具體運行容器由runC負責,實際上只要是符合OCI規范的容器都可以支持。

對于容器編排服務來說,運行時只需要使用containerd+runC,更加輕量,容易管理。而獨立之后containerd的特性演進可以和Docker Engine分開,專注容器運行時管理,可以更穩定。在向后兼容上也可以做的更好,containerd第一個正式版本1.0 Release之后將提供一年的支持,包括安全更新和Bugfix,而每次升級也會向后兼容一個小版本。”

Containerd特性

職能單一

通常一個容器運行時需要包括哪些功能特性呢?

Containerd的特性有哪些

這里是containerd的架構圖。中間這一層里包含了三個子系統,從這里可以看出containerd支持哪些能力

  • Distribution: 和Docker Registry打交道,拉取鏡像

  • Bundle: 管理本地磁盤上面鏡像的子系統。

  • Runtime:創建容器、管理容器的子系統。

可以看出containerd非常的干凈,提供的都是運行時真正需要的功能。

Cotainerd 只負責容器運行時 和 基本的鏡像管理,和一些普遍需要的支持。

* 容器管理
* 鏡像管理
* 存儲卷管理
* 性能采集
* 日志管理
* 網絡

特性和路線圖

* 支持OCI鏡像
* 支持OCI運行時(runC)
* 支持鏡像的pull/push操作
* 容器運行時和生命周期管理
* 網絡原語:創建/修改/刪除接口
* 讓容器加入已有的Network Namespace
* 使用“內容可尋址”存儲支持全局鏡像多租戶共享

Namespace支持

Containerd的特性有哪些

由于需要兼容上層多個編排系統,docker 和 k8s 在一個node上可能存在多個containerd。在不同的命名空間,可以有相同名字的容器。當下載不同namespace的鏡像時,可以拿其他namespace的鏡像做軟鏈,以節省存儲空間,無需重復下載。

Plugin模式

好處:功能易擴展。當需要對接上層編排系統時,可以通過插件的方式進行對接。 cri-containerd 變成一個插件,可以讓k8s直接對接containerd的功能。

Containerd的特性有哪些

兩種方式集成:原生代碼集成 和 動態庫的方式。 原生代碼集成,顧名思義,就是代碼在一個repo里構建成一個二進制文件。 所謂動態庫的方式,就是把.so文件加入規定的目錄下,在不重新編譯containerd二進制的情況下,加載某個插件。

Containerd的CRI實現

項目: https://github.com/containerd/cri

原名cri-containerd:目前 cri-conainerd 已經變成containerd的一個插件。

支持K8s CRI規范的所有特性

提供了使用ansible和kubeadm工具部署k8s集群的方法。

Containerd的CRI實現

-- 插件化前

Containerd的特性有哪些

缺點:實際上通過containerd client調用 containerd ,多了一層grpc的調用,性能上有損耗。

-- 插件化后

Containerd的特性有哪些

功能上沒有變化,性能較大提升。

Containerd & CRI 現狀 -- Containerd vs docker

優點:

  • Stability 職責單一,更容易穩定

  • Compatibility 跟隨kubernetes的需求

  • Neutral Foundation 中立, CNCF 項目之一

  • Performance

Containerd的特性有哪些

dockershim的代碼是集成在 kubelet內部的,dockershim的作用是把docker的接口用CRI標準封裝起來。

docker 17.11版本開始使用Containerd v1.0

cri-conainerd 已經變成containerd的一個插件。

缺點:

  • User Adaption 調試工具手段相比docker還有差距

  • Maturity 需要時間成熟

性能對比(docker vs containerd)

圖上半部是docker的數據, 圖下半部是containerd 的數據。

Containerd的特性有哪些

第一列,對比Pod創建時延 ,使用k8s測試工具density 創建 50%,90% ,99% 的pod 花費的時間。

第二列,單位時間內能創建多少pod。

Containerd的特性有哪些

上圖測試創建105個 pod,對機器資源的消耗。

Containerd的特性有哪些

分析:一個容器對應一個dockershim,在docker中dockershim占用的內存與 containerd占用內存對比,更小。

未來規劃

進一步優化 * cri-containerd插件化后再瘦身 * containerd-shim耗費內存比較多 換一種語言實現?

重要事件

  • Containerd 原生支持CRI

    • 項目已經合并,cri-containerd作為Containerd的一個插件,改名cri,不再獨立存在。

  • 版本:伴隨kubernetes 1.10, 發布cri-containerd 1.0.0-rc.0 , Containerd 1.1

Plan 2018

  • secure Pod (kata container etc)

  • Windows container

  • 性能優化部分...

Containerd架構圖

Containerd的特性有哪些

理解這些組件模塊以及之間的關系對修改和擴展系統十分關鍵。

整個架構的目標是為了協調bundles的創建和執行。bundles是指被Runtime使用的,包括配置、元數據、rootfs數據。bundle在文件系統上代表運行時容器,簡化為一個目錄。

Code layout并沒有反映實際的架構。

Subsystems: 外部用戶通過GRPC API暴露的服務來進行交互。

  • Bundle: bundle服務允許用戶從硬盤鏡像中解壓和打包bundles.

  • Runtime: runtime服務支持bundles的執行,包括創建容器運行時

每個子系統有一個以上的controller 組件、實現了子系統的行為,并通過服務的方式暴露給外部訪問。

Modules

除了子系統之外,還有一些組件可能跨子系統實現。

  • Executor: 實現了實際容器運行時。

  • Supervisor: 監控和報告容器狀態。

  • Metadata: 在graph db中存儲元數據。保存與鏡像和bundles相關的所有文件。保存在數據庫中的數據有schema,包含與模塊間協作入口。還包括回收磁盤空間的垃圾回收hook。

  • Content: 提供內容可尋址的存儲。所有不可改變的內容通過hash key保存在這里。

  • Snapshot: 管理文件系統上容器鏡像的快照。類比于Docker中的 graphdriver

  • Events: 支持收集和消費事件,提供一致地以事件驅動的行為和審計。事件可以以多種模型進行重放。

  • Metrics: 每個組件會導出多個metrics,通過metrics API訪問。

Client-side Subsystems

  • Distribution: 提供上傳和下載鏡像的功能

創建bundle的data-flow

Containerd的特性有哪些

到此,相信大家對“Containerd的特性有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余姚市| 应城市| 赞皇县| 平安县| 雷山县| 滨州市| 和顺县| 油尖旺区| 商洛市| 琼海市| 云霄县| 晋城| 枝江市| 海林市| 苗栗县| 开江县| 绥中县| 皋兰县| 吴堡县| 额济纳旗| 石阡县| 通州区| 大庆市| 象山县| 新乡市| 平顶山市| 永寿县| 美姑县| 保定市| 乌海市| 达拉特旗| 大田县| 和顺县| 彰化县| 伊宁市| 安西县| 肥城市| 桦南县| 兰州市| 绥宁县| 彩票|