易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 6|回复: 0
收起左侧

containerd的部署安装过程

[复制链接]
发表于 2025-2-13 09:51:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
containerd的部署安装过程
: P5 i1 x  j# X* O, L5 |
" l0 G2 J; ]% @9 V3 s: t
% l" w" V9 w3 U" [9 e' d- U早在2016年3月,Docker 1.11的Docker Engine里就包含了containerd,而现在则是把containerd从Docker Engine里彻底剥离出来,作为一个独立的开源项目独立发展,目标是提供一个更加开放、稳定的容器运行基础设施。和原先包含在Docker Engine里containerd相比,独立的containerd将具有更多的功能,可以涵盖整个容器运行时管理的所有需求。6 ^  e  v- K/ T9 L( ^% W( [
containerd并不是直接面向最终用户的,而是主要用于集成到更上层的系统里,比如Swarm, Kubernetes, Mesos等容器编排系统。
; U( S& ]4 j, F  a2 @! f3 tcontainerd以Daemon的形式运行在系统上,通过暴露底层的gRPC API,上层系统可以通过这些API管理机器上的容器。
) X# m0 ?- h$ F& ~% @每个containerd只负责一台机器,Pull镜像,对容器的操作(启动、停止等),网络,存储都是由containerd完成。具体运行容器由runC负责,实际上只要是符合OCI规范的容器都可以支持。" V: F3 Z6 A2 q* z/ F
对于容器编排服务来说,运行时只需要使用containerd+runC,更加轻量,容易管理。" @- L' K% ^" ~
独立之后containerd的特性演进可以和Docker Engine分开,专注容器运行时管理,可以更稳定。
1 X2 d8 s  @9 B9 t1 A' n8 o# n% a" u1 N
- j# Z! f# V* ^5 U
- g( e5 g$ ]4 N7 |4 u$ h/ e
8 I) o6 F2 d6 D0 J  L; B$ Y% G% T# d) X
- Containerd 采用标准的 C/S 架构
: U! G2 L4 x) g' b* \+ H# U: U  - 服务端通过 GRPC 协议提供稳定的 API
4 y% s- u; x7 g( p* L  - 客户端通过调用服务端的 API 进行高级的操作
4 |- [' l/ u$ \
/ @% O, ?! ^9 w! b) @: _- 为了实现解耦,Containerd 将不同的职责划分给不同的组件,每个组件就相当于一个子系统(subsystem)。连接不同子系统的组件被称为模块。
' g+ j& ~; K4 p5 B( ]- t4 q( U1 |% z/ j0 i0 o! w" C3 S$ N
: y7 `; l, s2 `
- Containerd 两大子系统为:
1 u: z/ }/ ?9 o4 `6 O
7 ~6 c6 ^7 y- x( {" J2 S  - Bundle : 在 Containerd 中,Bundle 包含了配置、元数据和根文件系统数据,你可以理解为容器的文件系统。而 Bundle 子系统允许用户从镜像中提取和打包 Bundles。) U) |" L; \! c4 p1 F5 d
  - Runtime : Runtime 子系统用来执行 Bundles,比如创建容器。! H# e7 M7 k6 y, K- i& L. X5 _* g! d, ]% `

7 I2 R+ ~) Z' C0 Q4 c, l9 y. j  其中,每一个子系统的行为都由一个或多个模块协作完成(架构图中的 Core 部分)。每一种类型的模块都以插件的形式集成到 Containerd 中,而且插件之间是相互依赖的。
" @# X' k) {5 `. e+ w/ h4 C
. P  r) T& r0 I9 m( k7 N' R  例如,上图中的每一个长虚线的方框都表示一种类型的插件,包括 Service Plugin、Metadata Plugin、GC Plugin、Runtime Plugin 等,其中 Service Plugin 又会依赖 Metadata Plugin、GC Plugin 和 Runtime Plugin。每一个小方框都表示一个细分的插件,例如 Metadata Plugin 依赖 Containers Plugin、Content Plugin 等。
8 j. j& u7 v5 W! i3 X2 c6 s. K8 ~/ W! O$ a
- Content Plugin** : 提供对镜像中可寻址内容的访问,所有不可变的内容都被存储在这里。
( W6 n9 b% _2 z9 o; |- Snapshot Plugin** : 用来管理容器镜像的文件系统快照。镜像中的每一个 layer 都会被解压成文件系统快照,类似于 Docker 中的 `graphdriver`。
; H9 J. Q6 w5 z8 x  z$ L. @- Metrics** : 暴露各个组件的监控指标。! F: }0 g% T4 S3 i8 d
5 B8 _& R( g! q' H% A. }

2 e6 \' }8 g$ ]& y0 ]7 gcontainerd的安装
  m9 o6 N0 e: q, Q' M3 s  E
2 d" g! {0 }% e$ V' U' b' m5 E' ?6 e6 b7 S; B0 I6 w. X
, P  Z% S7 @- Y6 V  Y" q

' k3 T8 B- _5 U6 [/ q/ J7 {% n
$ l' ?* I  F" z2 @  ~& D9 O
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 20:23 , Processed in 0.042965 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表