欢迎光临散文网 会员登陆 & 注册

深究Containerd源码-1-简介和概览

2022-11-22 16:18 作者:黑暗光影DIY  | 我要投稿

代码基于v1.7.0-beta.0-89-g344da9edb

containerd是一款高性能容器运行时管理程序,通常以守护进程方式运行,docker和kubelet通过grpc对接containerd,南向可对接流行的容器运行时,如runc,kata

通过官方(https://containerd.io)的架构图,containerd从逻辑上分成三层:

  • API层提供北向服务GRPC调用接口和度量数据采集接口,API支持Kuberntes CRI标准和containerd client两种形式

  • Core层是核心逻辑层,包含服务和元数据

  • Backend层主要是南向对接操作系统容器运行时

从containerd源码看,每一个模块都是一个plugin,并且相同类型的plugin以树状组成子系统,例如containerd启动流程

总体上containerd的类图containerd Server包括Plugins和Config

如下containerd启动流程,核心为server.New构建containerd.Server实例,LoadPlugins会获取所有注册到register变量的plugin,完成plugin初始化和加载。每个plugin的包中通过func init调用plugin.Register将自己注册到register变量,例如CRI Plugin注册

containerd/pkg/cri/cri.go

后续我们重点分析一下从CRI开始容器的生命周期代码流程。


开源的东西,不需要说明出处,就说你自己写的

深究Containerd源码-1-简介和概览的评论 (共 条)

分享到微博请遵守国家法律