10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

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:002108
用户头像

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

关注

评论

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

架构师训练营 -week13-作业

大刘

极客大学架构师训练营

Week 13

黄立

互联网架构总结

J

极客大学架构师训练营

智能合约Dapp系统开发,区块链智能合约技术

薇電13242772558

区块链 智能合约

字节首发Redis笔记,基础+原理+应用+源码+拓展五大核心模块

Java架构追梦

Java redis 编程 架构 面试

Swift函数调用逆向分析

ios swift

LeetCode题解:18. 四数之和,哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

流动性挖矿DAPP软件系统开发

系统开发

03-week4-homework

J

极客大学架构师训练营

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?

我们新四军不拿群众一针一线

阿里9年老开发终于总结出微服务架构设计模式PDF了

小Q

Java 学习 编程 架构 面试

区块链落地应用开发- 珠宝溯源,不当“冤大头”

13828808769

区块链技术 区块链落地开发 珠宝溯源

架构训练营-week13-作业1

于成龙

架构训练营

Java渣渣外包开发3年,4面终揽下美团面试官,含泪拿到22koffer

比伯

Java 编程 程序员 架构 面试

DeFi流动性挖矿系统APP软件开发

系统开发

如何透彻理解 Redis 核心原理?怎样才能形成 Redis 系统观?

Java架构师迁哥

面试阿里被质问:ConcurrentHashMap线程安全吗

Java架构师迁哥

生产环境全链路压测建设历程13:淘宝网稳定性近十年发展历程 2009年-2019年

数列科技杨德华

全链路压测 七日更

Himly TCC Dubbo 程序示例

Java 分布式事务 dubbo TCC Himly

六度空间系统APP开发|六度空间软件开发(现成)

系统开发

2020年文章合集

Rayjun

面试必问系列,源码解析多线程绝对不容忽视得问题:线程活性故障

小Q

Java 学习 架构 面试 多线程

第四周 系统架构 学习总结

胡云飞

极客大学架构师训练营

架构师训练营第 13 周作业

netspecial

极客大学架构师训练营

Netty RPC Demo 实现

Java RPC Demo

测开之数据类型· 第4篇《迭代器、生成器》

清菡软件测试

测试开发

懒人神器——新手必备的图片后期处理软件

懒得勤快

图片后期 修图 滤镜 ps

架构训练营-week13-总结

于成龙

架构师训练营 -week13-总结

大刘

极客大学架构师训练营

光知道SpringBoot,不用thymeleaf就太不对了

小Q

Java 学习 编程 面试 Spring Boot

第四周 系统架构 作业 「架构师训练营 3 期」

胡云飞

极客大学架构师训练营

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