写点什么

Kubernetes 提供了另一种容器运行时

  • 2017-05-09
  • 本文字数:1039 字

    阅读完需:约 3 分钟

传统上, Kubernetes 容器运行时是绑定到 Docker 和 rkt 的。但是在过去数月中,这一情况发生了变化。Kubernetes 发布了自己的容器运行时接口(CRI,Container Runtime Interface)API,同时正在完成一个称为 CRI-O 的实现,力图构建 Kubernetes 和 OCI 兼容运行时之间的桥梁。这为 Kubernetes 以标准方式使用任何 OCI 兼容容器运行时铺平了道路。

Kubernetes 依赖于底层的容器运行时实现生命周期控制,例如 Pull、创建、删除等操作。运行时实现为实际的容器,从操作系统层面管理命名空间隔离和资源分配。早期,Docker 和 rkt 是通过非公开的 API紧密集成到Kubernetes 源代码中的。要添加其它的运行时需要修补源代码,这是非常繁琐的,并且稳定性没有保证。为改进这一问题,在Kubernetes 1.5 中以公开发表测试特性的形式引入了CRI。CRI 提供了将容器运行时插入Kubernetes 系统的通用接口,使用户可以运行kubernetes 去编排并扩展他们的非Docker 和非rkt 架构。运行时也可以是 runv 这样的基于容器的 Hypervisor。

开放容器联盟(OCI,Open Container Initiative)是一个为标准化容器格式和运行时而组建的工业界联盟,它发布了容器运行时标准“ runtime-spec ”。当前该标准的实现包括 runc、 HyperHQ 的 runv 以及一种基于 Intel Clear Containers 的实现。CRI-O 项目是由 Project Atomic / RedHat 所启动的,还包括其它来自工业界的贡献者。它使用 OCI 兼容的运行时实现 Kubernetes CRI API,这意味着任何 OCI 兼容的运行时都可以通过 Kubernetes 的 CRI API 插入到 Kubernetes 中,而不必对每个运行时分别实现一个 CRI 适配器。

当前,Kubernetes 的 CRI 具有如下实现:

图片由 http://blog.kubernetes.io/2016/12/container-runtime-interface-cri-in-kubernetes.html 提供。

在 Kubernetes 部署中,Kubelet(在 Kubernetes 中称为 Minion)是在每台主机上的本地代理,与容器运行时进行通信。使用 CRI 后,Kubelet 可以通过 gRPC(一种开源的 RPC 框架)与 CRI 垫片(Shim)通信,其前端调用实际的运行时。Pod 是 Kubernetes 中的最小部署单元,其概念已经扩展为一个具有类似语义的概念,称为 PodSandbox。对于基于 Hypervisor 的运行时,PodSandbox 可理解成一个虚拟机。对于 Docker 等运行时,PodSandbox 可理解为 Linux 命名空间。

查看英文原文: Alternative Container Runtimes in Kubernetes

2017-05-09 19:001734
用户头像

发布了 227 篇内容, 共 74.4 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

2021春招涨薪跳槽技术必备:分布式宝典“限流

爱好编程进阶

Java 面试 后端开发

Demo:第三章:权限框架spring security oauth2

爱好编程进阶

Java 面试 后端开发

Java 结合实例学会使用 静态代理、JDK动态代理、CGLIB动态代理

爱好编程进阶

Java 面试 后端开发

走向数据科学:在字节跳动广告投放这么干

字节跳动数据平台

大数据 字节跳动 ab测试

Java-进阶:多线程2

爱好编程进阶

Java 面试 后端开发

2021最新「阿里」Java高级工程师面试高频题

爱好编程进阶

Java 面试 后端开发

CRUD多年,终获腾讯offer,就靠这几套面试题

爱好编程进阶

Java 面试 后端开发

eclispe的快捷键大全

爱好编程进阶

Java 面试 后端开发

DevOps转型到底值不值?

华为云开发者联盟

DevOps 敏捷 敏捷开发 软件工程 DevSecOps

如何设计一条稳定的应用交付流程?|云效工程师指北

阿里云云效

云计算 阿里云 云原生 持续交付 应用交付

混迹过超多开源社区的黄之鹏老师,为你解码AI开源的技术应用与未来趋势

OpenI启智社区

CentOS8安装Docker

爱好编程进阶

Java 面试 后端开发

Docker入门简介

爱好编程进阶

Java 面试 后端开发

Elasticsearch聚合学习之三:范围限定

爱好编程进阶

Java 面试 后端开发

Java IO

爱好编程进阶

Java 面试 后端开发

Java反射

爱好编程进阶

Java 面试 后端开发

30个实用SQL语句,玩转PostgreSQL

慕枫技术笔记

数据库 后端 4月月更

TASKCTL 作业流程与模块之间的区别

敏捷调度TASKCTL

Docker kettle 批量任务 调度引擎 ETL任务

网易互娱基于 Flink 的支付环境全关联分析实践

Apache Flink

大数据 flink 编程 流计算 实时计算

IDEA-2021首个大版本发布,Java开发者感动哭了(附新亮点演示

爱好编程进阶

Java 面试 后端开发

JAVA 百度地图 API

爱好编程进阶

Java 面试 后端开发

Flink 流批一体在小米的实践

Apache Flink

大数据 flink 编程 流计算 实时计算

泡沫之下或许是中国的“第四消费时代”

基调听云

for(;;)和while(true)的区别

爱好编程进阶

Java 面试 后端开发

Java 反射 getClass()

爱好编程进阶

Java 面试 后端开发

28岁自学java,包装简历3年拿到15k薪资,分享我的学习经历

爱好编程进阶

Java 面试 后端开发

J2EE基础集合框架之Map集合

爱好编程进阶

Java 面试 后端开发

移动应用性能管理白皮书最新发布

基调听云

APM App 基调听云 行业报告

java8 Stream API及常用方法

爱好编程进阶

Java 面试 后端开发

java冒泡排序的实现以及优化

爱好编程进阶

Java 面试 后端开发

Java多线程-死锁的出现和解决

爱好编程进阶

Java 面试 后端开发

Kubernetes提供了另一种容器运行时_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章