从零开始入门 K8s:深入剖析 Linux 容器(12)


上图如果把它分成左右两边的话 , 可以认为 containerd 提供了两大功能 。

第一个是对于 runtime , 也就是对于容器生命周期的管理 , 左边 storage 的部分其实是对一个镜像存储的管理 。 containerd 会负责进行的拉取、镜像的存储 。

按照水平层次来看的话:

第一层是 GRPC , containerd 对于上层来说是通过 GRPC serve 的形式来对上层提供服务的 。 Metrics 这个部分主要是提供 cgroup Metrics 的一些内容;

下面这层的左边是容器镜像的一个存储 , 中线 images、containers 下面是 Metadata , 这部分 Matadata 是通过 bootfs 存储在磁盘上面的 。 右边的 Tasks 是管理容器的容器结构 , Events 是对容器的一些操作都会有一个 Event 向上层发出 , 然后上层可以去订阅这个 Event , 由此知道容器状态发生什么变化;

最下层是 Runtimes 层 , 这个 Runtimes 可以从类型区分 , 比如说 runC 或者是安全容器之类的 。

推荐阅读