找回密码
 注册
查看: 18|回复: 0

containerd的部署安装过程

[复制链接]

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
发表于 2025-2-13 09:51:16 | 显示全部楼层 |阅读模式
containerd的部署安装过程' |/ T2 U2 O7 R/ J

0 _) c" N& D% B" ~3 i1 |
3 @0 j# \+ a6 }1 p9 c8 h早在2016年3月,Docker 1.11的Docker Engine里就包含了containerd,而现在则是把containerd从Docker Engine里彻底剥离出来,作为一个独立的开源项目独立发展,目标是提供一个更加开放、稳定的容器运行基础设施。和原先包含在Docker Engine里containerd相比,独立的containerd将具有更多的功能,可以涵盖整个容器运行时管理的所有需求。
: R/ G& D. r8 l* [; |containerd并不是直接面向最终用户的,而是主要用于集成到更上层的系统里,比如Swarm, Kubernetes, Mesos等容器编排系统。
8 z$ b; c; m- m3 j, m8 i5 b% q6 Ncontainerd以Daemon的形式运行在系统上,通过暴露底层的gRPC API,上层系统可以通过这些API管理机器上的容器。4 s3 ?! l4 L, V& U: u- Z
每个containerd只负责一台机器,Pull镜像,对容器的操作(启动、停止等),网络,存储都是由containerd完成。具体运行容器由runC负责,实际上只要是符合OCI规范的容器都可以支持。
( m5 e7 ^' q9 J: {6 t对于容器编排服务来说,运行时只需要使用containerd+runC,更加轻量,容易管理。
! g" x2 l5 a- f$ ~5 ^2 w- g独立之后containerd的特性演进可以和Docker Engine分开,专注容器运行时管理,可以更稳定。
( @/ b# K/ j0 u: ^: e: Y% H3 U5 B6 b

1 H9 F4 t1 M" C) ^* H: H
) P% J& |& d  M7 N* [; y* x. @, _; m, q) ^, ?  Z
- Containerd 采用标准的 C/S 架构( h3 }- R3 A$ a, U
  - 服务端通过 GRPC 协议提供稳定的 API
- E. U6 N% Q/ [, [' q, B  - 客户端通过调用服务端的 API 进行高级的操作
" b7 F5 x, V% ~/ x) p
' c( X* A$ ], v  k2 B( q# O+ T- 为了实现解耦,Containerd 将不同的职责划分给不同的组件,每个组件就相当于一个子系统(subsystem)。连接不同子系统的组件被称为模块。( q( H- K1 L  O- w
1 l; l( V5 \+ y! c' p. n5 |  {

% |7 J  p3 `: ?  r* K4 x- Containerd 两大子系统为:
$ p$ [7 g5 Y3 u% K- \9 N" X
. I! E& v9 W& Z& @2 g6 T  - Bundle : 在 Containerd 中,Bundle 包含了配置、元数据和根文件系统数据,你可以理解为容器的文件系统。而 Bundle 子系统允许用户从镜像中提取和打包 Bundles。
7 D0 \5 w" I# _* k( e  - Runtime : Runtime 子系统用来执行 Bundles,比如创建容器。
7 I7 g/ c: v2 R) T% L8 Y# Z2 W( S2 M+ n  r) a6 w) h2 D& g$ k
  其中,每一个子系统的行为都由一个或多个模块协作完成(架构图中的 Core 部分)。每一种类型的模块都以插件的形式集成到 Containerd 中,而且插件之间是相互依赖的。
- o/ _8 |2 t2 ^4 L8 b! E# s' s
: S5 s5 P5 X; X+ M; {& |) O3 \  例如,上图中的每一个长虚线的方框都表示一种类型的插件,包括 Service Plugin、Metadata Plugin、GC Plugin、Runtime Plugin 等,其中 Service Plugin 又会依赖 Metadata Plugin、GC Plugin 和 Runtime Plugin。每一个小方框都表示一个细分的插件,例如 Metadata Plugin 依赖 Containers Plugin、Content Plugin 等。
  J: J- S9 @5 F2 C, ~( M4 W! P4 L6 O1 F0 M0 _8 S5 P$ h
- Content Plugin** : 提供对镜像中可寻址内容的访问,所有不可变的内容都被存储在这里。% i# v/ q6 A5 a' H0 C( `2 u
- Snapshot Plugin** : 用来管理容器镜像的文件系统快照。镜像中的每一个 layer 都会被解压成文件系统快照,类似于 Docker 中的 `graphdriver`。
- x6 l, ^- h4 \: F' m1 P# b- Metrics** : 暴露各个组件的监控指标。" f, u! Y( o, s9 H

7 L+ t9 g# a, E' R6 @* A+ x- l$ p, @3 N
containerd的安装9 m+ {3 K8 Z4 _$ B6 \6 e) T$ w

+ d: N0 b% ?; p# _+ C/ G) m0 N0 J* R2 ^# n" k/ B# P

6 _4 j: K. w5 }2 x! h
6 D3 D$ C$ ^4 |
' g5 k) ^7 n( O- w- N2 r# L1 `, ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-11 22:22 , Processed in 0.020323 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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