Container Runtime Interface

Container Runtime Interface (CRI)是Kubelet 1.5/1.6中主要负责的一块项目,它重新定义了Kubelet Container Runtime API,将原来完全面向Pod级别的API拆分成面向Sandbox和Container的API,并分离镜像管理和容器引擎到不同的服务。

CRI最早从从1.4版就开始设计讨论和开发,在v1.5中发布第一个测试版。在v1.6时已经有了很多外部Runtime,如frakti、cri-o的alpha支持。

CRI接口

CRI基于gRPC定义了RuntimeService和ImageService,分别用于容器运行时和镜像的管理。其定义在

Kubelet作为CRI的客户端,而Runtime维护者则需要实现CRI服务端,并在启动kubelet时将其传入:

kubelet --container-runtime=remote --container-runtime-endpoint=/var/run/frakti.sock ..

如何开发新的Container Runtime

开发新的Container Runtime只需要实现CRI gRPC Server,包括RuntimeService和ImageService。该gRPC Server需要监听在本地的unix socket(Linux支持unix socket格式,Windows支持tcp格式)。

具体的实现方法可以参考下面已经支持的Container Runtime列表。

目前支持的Container Runtime

目前,有多家厂商都在基于CRI集成自己的容器引擎,其中包括

results matching ""

    No results matching ""