容器技术发展进程

系列文章目录

第一章:容器技术发展进程



前言

容器已成为现在软件的基础架构


一、容器技术发展进程

 时间容器技术技术描述
chroot时代1979

unix

chroot

1979年,在开发Version 7 Unix时,chroot系统调用首次问世。chroot是Unix系统的一个系统操作,作用于正在运行的进程和它的子进程,改变它外显的根目录。它不能对这个指定根目录之外的文件进程存储、读取、修改。

由chroot创建的那个根目录叫做“chroot jail”--“chroot监狱”。

2000

FreeBSD Jails

2000年,FreeBSD团队将chroot机制导入虚拟化技术的概念,开发了新的jail系统命令,并伴随着FreeBSD 4.0版本一同发布。

FreeBSD Jails是一种操作系统层虚拟化技术,利用这个技术,FreeBSD系统管理者,可以创造出几个小型的软件系统,这些软件系统被称为jails(监狱)

每个jail都是机器上运行的一个虚拟环境,有它自己的文件系统,进程,用户与超级用户账号。软件在jails内运行跟实际的操作系统环境几乎一样。

2001

LlinuxVServer Jails

LinuxVServer是一种Jail机制,它可以安全的对计算机系统上的资源(例如:CPU时间、内存、网络地址和文件系统)进行分区,每个分区称为“安全上下文”,提供了类似chroot的实用程序,可用于进入安全上下文。

其中虚拟系统叫做虚拟私有服务器(Virtual Private Server,VPS)。

2004Solaris Container

zone是一个单一的作业系统实体,是一个独立虚拟伺服器,完全与其他实体隔开。通过zone,Solaris Container获得系统资源,并且与其他软体隔离,在沙盒中独立运作。

这个技术是由unix系统中的chroot进一步发展而来

2005Open VZ

OpenVZ是基于Linux内核的操作系统级虚拟化技术。OpenVZ运行物理服务器运行多个操作系统,该技术常用于虚拟专用服务器(VPS,Virtual Private Server),OpenVZ的主机和客户系统都必须是Linux。

Linux操作系统级虚拟化技术,每个Open VZ容器都有一套隔离的文件系统、用户、用户组、进程树、网络、设备和IPC对象。

OpenVZ的Linux客户系统共享OpenVZ主机Linux系统的内核,也就意味着OpenVZ的Linux客户系统不能升级内核。

LXC时代2006Cgroups (Process Containers) 

2006年谷歌推出Process Containers进程容器技术,用于限制、控制与分离一个进程组的资源(CPU、内存、磁盘I/O、网络)。

在2007年时,因为在Linux内核中,容器(Container)这个名词有许多不同的意义,为避免混乱,被重命名为cgroup,并合并到Linux内核2.6.24中。

cgroups提供:资源限制(使用不操作设定值)、优先级(让一些组可以分得大量资源)、结算(度量实际用了多少资源)、控制(冻结组和重启动)

2008

LXC(Linux Container)

2008年,基于Cgroups资源管理和Namespaces资源隔离技术,实现了Linux Container(LXC)。LXC是第一个最完整的Linux容器实现方案。

Container和K8S时代2011Warden

Warden由CloudFoundry在2011年成立,早期阶段使用LXC,但后来替换了LXC。Warden可以作为守护进程运行,并为容器管理提供API,从而在任何操作系统上隔离环境。

Warden还包括一个管理cgroups、命名空间和进程生命周期的服务。

2013LMCTFY

2013年,LMCTFY(Let Me Contain That For You)作为Google容器技术的开源项目,提供“高资源利用率、资源共享、性能可保证、接近零消耗”的容器。

应用程序可以被容器感知,创建和管理自己的子容器。

2015年,Google开始讲LMCTFY的核心概念贡献给Libcontainer,就停止了对LMCTFY项目的开发维护工作。Libcontainer现在是Open Container Foundation(开放容器基金会)托管。 

2013Docker

2013年,Docker是一种Linux容器(LXC)技术,增加了高级API,提供了一种轻量级的虚拟化解决方案,可以独立运行Unix进程。提供了可预测、安全、可重复、自动化部署软件。高级API允许系统管理员在容器上执行:启动、停止、复制、等待、提交、附加标准流、列出文件系统更改等。

Docker最初是一个叫做dotClout的PaaS服务公司的内部项目,后来公司改名为Docker。它提供一整套容器的生态系统,包括高校、分层的容器镜像模型、全局和本地的容器注册库、清晰的REST API、命令行等。Docker最初阶段使用LXC,后来用自己的libcontainer库提供。Docker也推出了Docker Swarm的容器集群管理方案。

2014rkt容器

2014年,CoreOS发布并开始支持rkt(最开始发布为Rocket),作为Docker的替代品,提供了应用程序容器镜像的另一种标准格式、容器运行时,以及容器发现和检索协议。CoreOS的rkt容器的出现,使用户有了更多的选择,并促成了容器社区的良性循环。

CoreOS也开发了其它几个可用于Docker和Kubernetes容器相关的产品,例如:CoreOS操作系统、etcd和flannel。

2015kubernetes

2015年,Google发布Kubernetes v1.0发布。发布同时,谷歌与Linux基金会合作,成立了云原生计算基金会(CNCF),Kubernetes是CNCF的第一个项目。Kubernetes是Borg的开源版本(Borg是一个大型内核集群管理系统,用于运行数十万个作业,来自数千个不同的应用程序,并且跨许多集群,每个集群有数万台机器)。

2016Windows Containers

2015年,微软在Windows Server上为基于Windows的应用添加了容器支持,称为Windows Containers,它与Windows Server 2016一同发布。

Docker可以原生的在Windows上运行Docker容器,而不需要启动一个虚拟机来运行Docker。

2017容器工具

2016年Google将kubernetes捐给CNCF,VMWare、Azure、AWS、Docker等宣布在其基础架构上提供支持,2017年kubernetes发展火爆。

2017年CoreOS和Docker联合提议将rkt和containerd纳入CNCF

2017年Docker剥离核心容器运行时containerd捐给CNCF。Docker捐赠的主要目录是通过提供一个核心容器运行时来促进容器生态系统的进一步创新,容器系统供应商和编排项目(Kubernetes、Swarm等)可以利用这个核心容器运行时。

2018k8s

2018年,容器成为现在软件的基础架构,Kubernetes有史以来第一次被大量企业使用。截止2018年初,GitHub上的Kubernetes项目有27000多个Star,1500多个贡献者,成为最重要的开源社区之一。让更多的企业,如:AWS、Oracle、Google、Azure、VMWare、RedHat和Rancher都开始提供基于Kubernetes的管理平台。

2019serverless

2019年新的运行时引擎(Containerd和CRI-O)开始替代docker运行引擎。CRI-O能让用户直接从Kubernetes运行容器,而无需任何不必要的代码或工具,只要容器符合OCI标准,CRI-O就可以运行它。

2019年serverless无服务器计算平台也取得了进步,允许开发人员更轻松的运行并部署代码片,且这些代码片段能快速实现规模伸缩以响应事件需求。由Google、IBM等发起的Knative。

2019年推出了基于Kubernetes的混合云解决方案,如:IBM CloudPaks、谷歌Anthos、AWS Outosts和Azure Arc。

未来待更新

 

 


总结

新应用系统会大量使用容器技术,Kubernetes已经成为每个人都想使用的容器编排技术。但企业对容器和相关技术还需要进行不断改进,从集中的容器编排到与云内或云间其他集群无缝写作的分布式云集群。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值