把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

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

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

关注

评论

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

SAPGUI里实现自定义的语法检查

汪子熙

SAP abap SAPGUI 语法检查

CRM和ERP的Sales Organization的映射关系

汪子熙

中间件 CRM SAP ERP

CRM中间件里的发布-订阅者模式

汪子熙

CRM SAP ERP abap

ABAP OPEN SQL里OPEN CURSOR和SELECT的比较

汪子熙

CRM SAP abap ST05 OPENSQL

CRM订单状态的Open, In process和Completed这些条目是从哪里来的

汪子熙

CRM SAP ERP abap

为什么使用中间件下载时总是收到警告消息Object is in status Wait

汪子熙

中间件 CRM SAP ERP

CRM product UI里assignment block的显示隐藏逻辑

汪子熙

CRM SAP abap

如何证明CRM WebClient UI上的应用是有状态(Stateful)的

汪子熙

CRM SAP abap WebClient UI

ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

汪子熙

SAP abap Netweaver SAPGUI

如何从ERP下载Sales BOM到CRM

汪子熙

CRM SAP ERP abap

如何使用代码获得一个function module的Where Used List

汪子熙

CRM SAP abap SAPGUI

观察者模式在One Order回调函数中的应用

汪子熙

CRM SAP abap

高性能 JavaScriptの六 -- 老生常谈Ajax

空城机

JavaScript ajax 大前端 5月日更

设计千万级学生管理系统的考试试卷存储方案

俞嘉彬

面试问题 - 只用位操作在ABAP里实现a+b

汪子熙

面试 SAP abap

利用CRM中间件Middleware从ERP下载Customer Material的常见错误

汪子熙

中间件 CRM SAP ERP

Mybatis获取自增长id

风翱

mybatis 5月日更

架构训练营-模块四作业

冬天的树

如何快速的学习一门新的编程语言?

架构精进之路

学习 5月日更

One Order行项目里Item Category是怎么计算出来的

汪子熙

CRM SAP abap ONE-ORDER

如何在Chrome development tool里查看C4C前台发送的未经 GZIP 压缩之前的请求细节

汪子熙

chrome SAP C4C Chrome开发者工具

在浏览器里使用SAPGUI里的SE80

汪子熙

JavaScript SAP abap Fiori SAP UI5

架构师训练营 作业四

开拓纪

如何使用腾讯云提供的云主机

汪子熙

腾讯云 云主机 Cloud

如何在ubuntu上安装virtualbox的driver module vboxdrv

汪子熙

ubuntu 虚拟机 vboxdrv 驱动

如何从ERP将Material的Batch信息下载到CRM

汪子熙

CRM SAP ERP abap

数字货币兴起背后:全球货币超发 主权信用贬值

CECBC

如何用ABAP代码读取CDS view association的数据

汪子熙

CDS SAP abap CDS view

如何检查某个用户是否具有某个权限对象上定义的某种权限

汪子熙

CRM ERP abap Authorization Authentication

金融科技如何在产业互联网蓝海中扬帆远航?大数据、区块链与物联网应用被看好

CECBC

ABAP git客户端的简单介绍

汪子熙

GitHub SAP abap

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