OCI(docker)规范和AppC(CoreOS)规范

   Kubernetes(k8s)既可使用docker也可使用rkt 
    Docker容器技术使用OCI规范
    rkt容器技术使用AppC规范
    oci规范是oci基于docker制定的容器标准
     AppC容器开放标准与规范是CoreOS制定的

名称 组织 代码地址 备注
containerd CNCF https://github.com/containerd 云原生计算基金会
docker docker公司    
rkt容器 CoreOS https://github.com/rkt/rkt  
OCI规范 OCI组织 https://opencontainers.org/release-notices/v1-0-0/

OCI 由 docker、coreos 以及其他容器相关公司创建于 2015 年,目前主要有两个标准文档:
1.容器运行时标准(runtime spec)
2.容器镜像标准(image spec)

OCI(open Container Initiative)容器标准化组织的主要目的是推进容器技术的标准化

AppC规范 coreos公司 https://github.com/appc/spec  
flannel  coreos公司 https://github.com/coreos/flannel/releases  
Calico Google https://github.com/calico
https://github.com/projectcalico/
https://github.com/projectcalico/calico
 
runc  OCI组织

https://github.com/opencontainers/runc

runc 是 docker 捐赠给 OCI 的一个符合标准的 runtime 实现
runc 是一个命令行工具,用来大量生成和运行符合 OCF/OCP 规范的容器

runc 基于libcontainer,已单独成项目,Docker使用的是libcontainer/runc

runc命令行     runc spec 生成符合oci的配置文件
OCF   https://opencontainers.org/
https://github.com/opencontainers/specs
OCF是一种新兴的容器标准,从文件系统的角度定义什么是标准容器
busybox   https://github.com/topics/busybox
https://busybox.net/
 通常作为基础镜像,生成定制化的基础镜像或者是制作基础文件系统
OCF      开放容器格式标准 Open Container Format
cnm和cni(容器网络) docker/coreos公司

libnetwork是对CNM的实现,提供docker核心网络架构的全部功能

docker提出的cnm规范和coreos提出的cni规范
Google, Coreos,Kuberenetes主导cni
cnm缩写Container Network Model
CNI 缩写Container Network Interface

 

cni容器网络技术  CNI意为容器网络接口(ContainerNetwork Interface)  

google公司的calico
coreos公司的flannel
Weaveworks公司的weave
https://github.com/containernetworking/cni/blob/master/SPEC.md
https://github.com/coreos/flannel
https://github.com/projectcalico/cni-plugin
https://www.weave.works/oss/net/

cni规范  

https://github.com/containernetworking/cni/blob/main/SPEC.md
cni v1.0.1

https://github.com/containernetworking/plugins

 

https://github.com/containernetworking/cni/blob/v1.0.1/Documentation/spec-upgrades.md
cni v0.8.0

https://github.com/containernetworking/cni/blob/spec-v0.1.0/SPEC.md

rkt容器技术 coreos公司出品

http://kubernetes.io/docs/getting-started-guides/rkt/

同docker,也是容器技术一种,是coreos团队打造的

CRI    

Container Runtime Interface (CRI)-k8s操作

CRI中定义了容器和镜像的服务的接口,因为容器运行时与镜像的生命周期是彼此隔离的,因此需要定义两个服务,该接口使用Protocol Buffer,基于gRPC。(client)

Container Runtime实现了CRI gRPC Server,包括RuntimeService和ImageService。该gRPC Server需要监听本地的Unix socket,而kubelet则作为gRPC Client运行

在k8s 1.5版本之后,kubernetes推出了自己的运行时接口api–CRI(container runtime interface)。
cri接口的推出,隔离了各个容器引擎之间的差异,而通过统一的接口与各个容器引擎之间进行互动。
rktnetes coreos公司出品  

rktnetes是一套代码库,它允许Kubernetes节点使用rkt而非Docker来运行容器。这个项目为Kubernetes增加了新的功能,例如在更加灵活的隔离级别下运行容器

posted @ 2022-04-27 10:32  jinzi  阅读(448)  评论(0编辑  收藏  举报