写点什么

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

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

关注

评论

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

WEB本地存储:localStorage、Web SQL Database、IndexedDB

devpoint

Cookie indexedDB LocalStorage sessionStorage 11月日更

Java基础 | Proxy动态代理机制详解

jdk 动态代理 java基础 Proxy

Go语言安装和配置SDK,阿里牛逼

Java 程序员 后端

《Kubernetes in action 读书笔记》:Kurbernetes横空出世

后台技术汇

kubenetes 11月日更

感觉要起飞!终于找到开发效率低的原因....

Jackpop

Geospatial-地理空间,java面试基本知识

Java 程序员 后端

GitHub上标星75k+的《Java面试突击版,京东java面试题答案

Java 程序员 后端

GitLab CI构建SpringBoot-2,rabbitmq原理及作用

Java 程序员 后端

Java容器 | 基于源码分析Map集合体系

Java hashmap map

HarmonyOS(鸿蒙),java免费视频百度网盘

Java 程序员 后端

如何做架构设计

天天向上

架构实战营

外包学生管理系统详细架构设计

天天向上

架构实战营

Github上堪称最全的面试题库(Java岗)到底有多香,java基础进阶视频

Java 程序员 后端

Github限时开放!阿里内部强推的《微服务容器化参考指南

Java 程序员 后端

Gradle项目的jar发布到私有仓库,java并发编程实战王宝令

Java 程序员 后端

Hello Git快速入门,三年经验Java开发面经总结

Java 程序员 后端

Flink的sink实战之四:自定义,Java开发笔试题目

Java 程序员 后端

.NET6新东西--ConfigurationManager

喵叔

11月日更

Git 常用命令,使用Docker部署Spring-Boot项目

Java 程序员 后端

git(3)Git 分支,mysql语句优化面试题

Java 程序员 后端

GitHub标星17万:打破程序员“中年危机,单点登录(Single-Sign-On)解决方案

Java 程序员 后端

数据分析入门

加里都好

大数据

Github上都在疯找的阿里内部“全栈技能修炼”终于来了,kafka基础概念

Java 程序员 后端

HashMap + 软引用进行缓存,java程序设计案例教程第二版答案

Java 程序员 后端

HDU-3038-How Many Answers Are Wrong【 带权并查集 】题解

Java 程序员 后端

flume基本概念与操作实例(常用source),kalilinux视频教程

Java 程序员 后端

Redis Pipeline

new life

Java基础 | 泛型机制与反射原理

Java jdk 反射 泛型

Java容器 | 基于源码分析List集合体系

Java List 集合 ArrayList

Python+JavaScript = 真牛!

Jackpop

HTML笔记 —— 标签和超链接,java面试数据库隔离级别实战

Java 程序员 后端

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