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

深究Kata-containers源码-2-containerd-shim-kata-v2组件分析

2023-01-19 17:13 作者:黑暗光影DIY  | 我要投稿

代码基于3.1.0-alpha1,commit: 20196048bf5f0b8e08d8fef2371ff421c6dacd9b

同containerd-shim-runc-v2,其启动流程代码一致,区别在于,调用containerd/runtime/v2/shim/run时,传人initFunc,而manager为nil

github.com/kata-containers/kata-containers/src/runtime/cmd/containerd-shim-kata-v2/main.go

github.com/containerd/containerd/runtime/v2/shim/shim.go

当manager为nil时,会调用initFunc,即github.com/kata-containers/kata-containers/src/runtime/pkg/containerd-shim-v2/service.go New函数,生成TaskService和shimToManager实例。

看流程总体流程如下:

主要流程和containerd-shim

-runc-v2部分大致相同,已经分析过,不再赘述,主要分析kata部分代码,看下类图关系

github.com/kata-containers/kata-containers/src/runtime/pkg/containerd-shim-v2/service.go New函数主要生成service实例,然后通过带入taskService实现TTRPC服务注册,通过shimToManager.Start实现启动。启动完成后通过service.Create TTPRC接口实现容器或沙箱的创建。

继续分析Create流程,如下:

根据Sandbox/SingleContainer和PodContainer两个case,分别调用CreateSandbox和CreateContainer,这个调用源码主要来自于kata-containers/src/runtime/virtcontainer包。virtcontainer包下节继续分析。


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


深究Kata-containers源码-2-containerd-shim-kata-v2组件分析的评论 (共 条)

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