归根结底 kubernetes node(kubelet)的主要功能就是启动和停止容器的组件,我们称作为容器运行时(container runtime),其中最知名的是docker,为了更具扩展性,kubernetes v1.5版本开始就加入了容器运行时插件API,Container Runtime Interface 简称为CRI。
CRI 包含 Protocol Buffers、gRPC API、运行库支持及开发中的标准规范和工具
容器运行时接口CRI(Container Runtime Interface)
是 kubelet 和容器运行时之间通信的主要协议,在 Kubernetes v1.5 引入。
- 作用:CRI 是插件接口,使 kubelet 能够使用各种遵循 CRI 的运行时,无需交叉重新编译
- 实现:CRI 是 kubernetes 定义的一组 gRPC 服务,kubelet 作为客户端,基于 gRPC 协议通过 socket 和容器运行时通信
- 组成部分
镜像服务(Image Service)
:通过远程调用管理镜像,包括下载、检查、删除镜像运行时服务(Runtime Service)
:用于管理容器的生命周期,以及与容器的交互
容器运行时调用层级如下: