写点什么

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

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

关注

评论

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

令数字起舞,让自然微笑:TECH4ALL的2020启示录

脑极体

分享一个普通程序员的“沪漂”六年的历程以及感想

程序员老猫

回忆录 经历 年终总结 沪漂 上海买房

通达同城快递设计方案

garlic

架构师训练营第 1 期

LeetCode题解:239. 滑动窗口最大值,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Linux基本操作命令

行者AI

Linux

北京一咖啡店启动数字人民币应用场景测试 店员:目前处于内测阶段

CECBC

数字人民币

破除数据垄断,数据上链或是关键

CECBC

区块链 大数据

ClickHouse利器—如何提高留存计算速度

行者AI

数据库

IPFS分布式存储矿机系统APP软件开发

系统开发

RPC Demo(二) 基于 Zookeeper 的服务发现

Java zookeeper RPC 服务发现

实用流程工具,浅析LR.NET配置型工作流引擎

雯雯写代码

.net 工作流

测开之函数进阶· 第6篇《闭包》

清菡软件测试

测试开发

第一张区块链完税证明在深圳开出,区块链政务应用再获突破

CECBC

区块链 电子证明

仅4步,就可通过SQL进行分布式死锁的检测与消除

华为云开发者联盟

数据库 sql 死锁

爆赞!P8架构师总结29篇多线程与高并发+设计模式核心笔记

Java架构追梦

Java 学习 架构 面试 多线程高并发

重新发现科技与人文的互动

脑极体

近些年有哪些口碑炸裂的项目管理工具?各具特色的项目管理工具我们该如何选择?

爱吃小舅的鱼

项目管理 程序人生

华为云·云享专家李万龙: IoT 梦想,从0到1的实现

华为云开发者联盟

技术 物联网 IoT

架构师 3 期 3 班 -week6- 作业

zbest

作业 week6

架构师训练营大作业

Gosling

架构师训练营第 1 期

送你一份迷你书,全面了解如何做好大促技术备战

京东科技开发者

DevOps

技术干货 | 六分钟学会使用 HBuilder 引入构建 mPaaS 小程序

蚂蚁集团移动开发平台 mPaaS

小程序 uni-app mPaaS

跨年巨作!13万字!腾讯高工纯手写“JDK源码笔记”直接带你飙向实战

比伯

Java 编程 架构 面试 计算机

写出一手烂代码的19条准则

Java架构师迁哥

软件测试——网络协议知识(二)

测试人生路

软件测试 网络通信协议

云挖矿APP系统开发|云挖矿软件开发

系统开发

如何使用mock应对测试所需随机数据

华为云开发者联盟

测试 数据 Mock

Java中的常量

cdhqyj

Java

Flink Forward Asia 2020 -- Keynote 总结

Apache Flink

flink

Rust布道者张汉东倾授,入门Rust初学者都要攻破哪些难点?

华为云开发者联盟

学习 rust 语言

百度京Fun生活节 双旦福利HIGH 翻全城

DT极客

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