容器的核心技术
容器技术除了的docker之外,还有其它不同的容器技术,为了保证容器生态的标准性和健康可持续发展,包括Linux 基金会、 Docker、微软、红帽谷歌和、IBM、华为等公司在2015年6月共同成立了一个叫open container(OCI)的组织,
其目的就是制定开放的标准的容器规范,目前OCI发布了runtime spec(运行时规范)、image format spec(镜像格式规范)、distribution-spec(镜像分 发规范),这样不同的容器公司开发的容器只要兼容以上规范,就可以保证容器的可移植性和相互可操作性
容器runtime(runtime spec)
runc
目前Docker和containerd默认的runtime,基于go语言开发,遵循OCI规范。
crun
redhat推出的运行时,基于c语言开发,集成在podman内部,遵循OCI规范。
gVisor
google推出的运行时,基于go语言开发,遵循OCI规范
低级容器运行时与高级容器运行时
High-Level
高级运行时提供基于API的远程管理操作,客户端可以通过高级别运行时管理容器的整个生命周期(创建、删除、重启、 停止),高级别运行时并不真正直接运行容器,而是调用低级别运行时运行,
比如dockerd、containerd都是高级别运行时。
Low-Level
接受高级别运行时的指令,按照响应的指令运行容器,因此低级别运行时真是运行容器的地方,例如runc是低级别运行时
k8s中的运行示例
运行时简介
OCI(Open Container Initiative):2015年Google、docker、Redhat、IBM共同成立,定义了运行标准和镜像 标准。
CRI(Container Runtime Interface):2016 年12月Kubernetes 发布 CRI(容器运行时接口), 可以支持rkt等不同 的运行时。
CRI-O:由redhat发起并开源,用于替代docker成为kubernetes的运行时,2016年开发,2019年4月8号进入 CNCF孵化