在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Containerd的架构是怎样的

117次阅读
没有评论

共计 2185 个字符,预计需要花费 6 分钟才能阅读完成。

本篇内容主要讲解“Containerd 的架构是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Containerd 的架构是怎样的”吧!

初识 ContainerdContainerd 与 Docker

在之前的工作中,containerd 一直都是薛定谔的存在,只闻其名但没啥用武之地,直到前一段时间 K8s 官方宣布要废弃 Docker 时,才把这家伙又拉回到大众视野里。在技术层面上,我在之前的文章中也讨论过 CRI、containerd 以及 Docker 这些容器运行时之间的关系。有兴趣的小伙伴可以去看一下这几篇文章:

理解容器运行时

K8s、CRI 与 container

现在只是单纯好奇在非技术层面上 CNCF 为啥要这么做呢,所以还是去八卦一下 Containerd 和 Docker 的前世今生以及爱恨情仇。

在几年之前,Docker 公司在容器技术领域强势崛起,一家独大,Google、RedHat 这样的巨头们都产生了很大的危机感,因此他们想与 Docker 公司一起联合研发推进一个开源的容器运行时作为 Docker 技术的核心依赖。然鹅 Docker 公司很高冷的表示:我不干!巨头们听到这个反馈就很不爽啊,因此通过一些手段对 Docker 公司软硬兼施,使其将 libcontainer 捐给了开源社区,也就是现在的 runc,一个 low level 的容器运行时。此外,巨头们又成立了 CNCF 去对抗 Docker 公司的一家独大,CNCF 成立的思路很明确:在容器领域干不过 Docker,那就搞容器上层的建设——容器编排,从此 K8s 诞生了。虽然 Docker 公司也尝试使用 Swarm 去对抗 K8s,但最终也失败了。

自此,K8s 慢慢成为云原生领域的标配,其生态也越做越大、越做越完善。Docker 公司为了融入生态,开源了 Docker 的核心依赖 containerd。此外 K8s 为了对接下一层的容器,也因为其中立性搞了一个运行时接口,也就是 CRI(Container Runtime Interface),runc、containerd 等运行时都去支持此接口。由于当时确实没有啥 high level 的 runtime,oci-o 虽然支持 CRI 接口,但其功能太弱;containerd 也尚未成熟,而且其当时的定位是嵌入到系统中,并非给终端用户使用;rkt 有自己的一套体系(后来这个项目也失败了)。只能暂时为了适配 Docker 搞了个 shim,将 CRI 转换为 Docker API。K8s 和 Docker 进入了冷静期,双方都在各自优化自己,互不干扰。然而平静之下仍是暗潮汹涌,CNCF 社区一直在不断完善 containerd,其定位也发生了改变,由原来的系统嵌入组件,变成了今天的“工业标准容器运行时”,并提供给终端用户使用。直到去年,K8s 宣布废弃使用 Docker,而改用 Containerd。其实除了这些商业因素,另一方面 K8s 已经提供了标准接口对接底层容器运行时,不再想单独维护一个 类似于 Docker shim 的适配层去迎合不同的运行时,这样做也无可厚非(其实我看就是自己做大了,把锅扔给底层了~ 嘘~)。

Containerd 架构

好了,现在瓜也吃完了,回到技术层面上来看看 Containerd 的架构是什么样的。首先看 containerd 的功能:

官网宣称自己支持 OCI 的镜像标准

OCI 的容器运行时

镜像的推送和拉取

容器运行时生命周期管理

多租户的镜像存储

网络管理以及网络 namespace 管理,支持容器网络加入已有的 namespace

我就直接好家伙,Docker 核心功能该有的都有了。再看看架构图

Containerd 的设计是一个大的插件系统,图中每一个虚线框其实就对应一个插件。

从下往上看,底层支持 arm 和 x86 架构,支持 Linux 和 windows 系统。

中间 containerd 包含三层:Backend、core、API。其中 Backend 中 Runtime plugin 提供了容器运行时的具体操作,为了支持不同的容器运行时 containerd 也提供了一系列的 containerd-shim,如之前的文章 K8s kata container 原理实践 提到的 shim 就是这个。Core 则是核心部分,提供了各种功能的服务,其中比较常用的是 Content service,提供对镜像中可寻址内容的访问,所有不可变的内容都被存储在这里;Images Service 提供镜像相关的操作;Snapshot Plugin : 用来管理容器镜像的文件系统快照。镜像中的每一个 layer 都会被解压成文件系统快照,类似于 Docker 中的 graphdriver。再往上则是 API 层,通过 GRPC 与客户端连接,这其中提供了给 Prometheus 使用 API 来进行监控,这里给个好评!

最上层则是各种客户端,包括 K8s 的 kubelet,containerd 自己的命令行 ctr 等。

简化一下上图:

简化后,Containerd 分为三大块:Storage 管理镜像文件的存储;Metadata 管理镜像和容器的元数据;另外由 Task 触发运行时。对外提供 GRPC 方式的 API 以及 Metrics 接口。

到此,相信大家对“Containerd 的架构是怎样的”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2185字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 色九九视频 | 嫩草伊人久久精品少妇av | 亚洲精品久久久蜜桃 | 国内老熟妇对白hdxxxx | 亚洲国产精品久久久久久久 | 国产在线欧美日韩一区二区 | 午夜精品成人毛片 | 久久99影院网久久久久久 | 两个人看的www神马视频 | 亚洲精品国产一区二区三 | 婷婷五月深深久久精品 | 国产久视频 | 在线免费观看你懂的 | 毛片电影网址 | 99久久99久久精品免费看子伦 | 黄片毛片一级片 | 久久99精品久久久 | 欧洲成人免费视频 | 日本一级爽快片淫片高清特级 | 亚洲综合区图片小说区 | h片在线免费观看 | 中文字幕日本六区小电影 | 国内精品视频九九九九 | 自拍偷拍国产视频 | 99精品国产高清自在线看超 | 亚亚洲乱码一二三四区 | 国产成人在线视频播放 | 日本三级片网站 | 日韩a片无码毛片免费看 | 少妇激情av一区二区三区 | 日韩精品一区二区三区中文 | www日| 精品女同同性视频很黄很色 | 亚洲欧美日韩高清 | 嫩草伊人久久精品少妇av | 69成人免费视频无码专区 | 成人网18免费韩国 | 久久久久久影院 | 激情视频在线 | 国产在线观看免费一级 | 欧美性色欧美a在线图片 |