Open penglongli opened 5 years ago
在容器及 Kubernetes 相关的技术中,我们经常会听到几个名词,很容易弄混。如:OCI、CRI、CNI、CSI。下边简单介绍下他们的概念,以及它们之间的关系
服务之间相互通信,走的是接口(协议、规范)。容器相关的一些开源软件(如:Kubernetes、Containerd、CRI-O、runc、Kata-Containers),大多是通过 protobuf 作为通信协议来开发的。大家通过约定的规范来定义接口,各自实现接口上下层,来完成具体功能的开发。
下边是一些概念的解释:
Kubelet 通过轮询 kube-apiserver 来判定是否要在当前节点启动 Pod。
当需要创建 Pod 的时候,Kubelet 会通过调用 CNI 接口获取网络资源(如 IP 等),然后调用 CRI 接口去创建容器,并把网络资源设进容器中。
CRI服务(Containerd、CRI-O)会去调用 OCI 标准运行时(runc、Kata-Container)来创建容器。
在容器及 Kubernetes 相关的技术中,我们经常会听到几个名词,很容易弄混。如:OCI、CRI、CNI、CSI。下边简单介绍下他们的概念,以及它们之间的关系
名词解释
服务之间相互通信,走的是接口(协议、规范)。容器相关的一些开源软件(如:Kubernetes、Containerd、CRI-O、runc、Kata-Containers),大多是通过 protobuf 作为通信协议来开发的。大家通过约定的规范来定义接口,各自实现接口上下层,来完成具体功能的开发。
下边是一些概念的解释:
关系
Kubelet 通过轮询 kube-apiserver 来判定是否要在当前节点启动 Pod。
当需要创建 Pod 的时候,Kubelet 会通过调用 CNI 接口获取网络资源(如 IP 等),然后调用 CRI 接口去创建容器,并把网络资源设进容器中。
CRI服务(Containerd、CRI-O)会去调用 OCI 标准运行时(runc、Kata-Container)来创建容器。