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

深究Containerd源码-3-CRIService RunPodSandbox流程分析

2022-11-28 19:31 作者:黑暗光影DIY  | 我要投稿

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

首先看下类图,criService中的Sandbox/Container对象都关联containerd.Container接口,这个接口的实现containerd.container关联containerd.Client,如下,结合官方的全局架构图,这个Client即API层到Core Services层的客户端。

RunPodSandbox是criService注册的GRPC服务调用,流程十分的长,总体上可分三个阶段:

  1. 生成Sandbox对象

  2. 生成containerd.Container对象

  3. 准备任务运行环境生成Task,并执行Task

阶段1生成Sandbox对象流程主要是根据请求信息生成ID和名称等。

阶段2首先确保Sandbox镜像存在,不存在的话则pull拉取,核心逻辑在于通过containerd.Client调用ContainerService.Create,此处先留白分析API层逻辑,下面会详细分析Services层逻辑

阶段3首先构建sandbox运行时所需要的目录,然后根据网络配置,如非hostNetwork则构建网络相关配置,同上具体逻辑先留白,先理顺API层全局逻辑,然后通过containerd.Client调用TaskService创建并运行。

附日志


深究Containerd源码-3-CRIService RunPodSandbox流程分析的评论 (共 条)

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