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

深究Containerd源码-7-Containerd-shim-runc-v2分析

2022-12-09 17:08 作者:黑暗光影DIY  | 我要投稿

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

看启动流程,首先将流程回溯到上一章shimManager.startShim,在binary.Start流程中,会给shim增加一个start参数,

此action决定了在shim启动流程中,走到了case start,如下,通过manager.Start会再通过子进程的方式启动shim,将子进程启动的监听服务定制返回给containerd,实现containerd进程和shim进程解除父子关系,新的独立shim进程启动ttrpc服务,实现rpc交互。

独立进程的shim服务,主要包括如下plugin,核心是ttrpc.v1.task,该服务实现了runc容器的生命周期管理功能。

展开ttrpc.v1.task,类图如下,主结构service实现了ttrpcService和TaskService接口,支持ttrpc调用,主要关联Container结构,一个shim支持创建多个container,Container主要关联Process接口,Process接口主要实现容器进程的生命周期管理,由Init实现此接口,并关联到go-runc项目Runc结构,Runc对于一个runc实例。

看Create流程,如下,最终是通过Cmd启动runc create进程。

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

深究Containerd源码-7-Containerd-shim-runc-v2分析的评论 (共 条)

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