2019独角兽企业重金招聘Python工程师标准>>>
根据Google自己的估计,每一周启用的Container多达20亿个,虽然一般企业不会出现上亿个Container的管理需求,但要在整座数据中心内的多台服务器上部署数百到数千个Container,仍然不是一件容易的事。而Container OS容器操作系统正是瞄准了大量部署Container而生的专用型操作系统。面对Container OS的需求,几家知名的Linux操作系统厂商自然也不会放过这个机会,纷纷推出自己的Container OS版本。以下是iThome整理出6个目前最具规模的Container OS信息。
CoreOS
CoreOS是最早问市的Container OS,并且提供集群部署架构,近日更是获得Google创投基金的青睐。
衍生自Chrome OS的CoreOS是轻量Linux操作系统,在2013年首次推出了alpha版本,是最早问市的Contianer操作系统,不仅镜像文件只有161MB,而且还提供了集群部署工具,适合用来建立分布式架构与集群化部署。
CoreOS包含了若干个工具,以帮助用户管理CoreOS集群以及部署Containers,其中包括CoreOS自己开发的etcd及fleet。
etcd是一个服务发现(Service Discovery)与配置共享(Share Configuration)的工具,它建立在分布式的key-value储存架构。
fleet则是一个分布式系统初始化工具,它是结合Systemd与etcd的功能,提供集群架构的系统部署,可确保集群中的服务一直处于可用状态,比方说,当某个通过fleet建立的A服务失效时,这时运行在服务器中的A服务,就可以通过fleet而重新部署到其他服务器中。
在Docker发展的初期,CoreOS一直是Docker积极的拥护者,不过CoreOS后来另推出的Container──Rocket Container(rkt),与Docker的关系由昔日盟友变成竞争对手。
去年12月,CoreOS创办人Alex Polvi批评Docker逐渐失去对于Container标准化的坚持,逐渐朝向Container管理平台的方向前进,所以CoreOS才决定开发自家的Container技术Rocket。
在去年5月时Google也宣布,CoreOS正式成为Google运算引擎(Google Compute Engine,GCE)中预设的镜像文件之一。近日则陆续有厂商加入支持rkt规格,包括Red Hat、Google与VMware。
fleet与etcd是CoreOS重要的部署工具,也是CoreOS能提供集群架构部署的关键。
不同的服务打包成Container后,可分配到不同的CoreOS主机,通过fleet与etcd等工具,即可进行跨主机的部署与服务发现。
RancherOS
由CloudStack团队成员开发,专为Docker Container设计的最轻量Linux操作系统,镜像文件大小仅22MB。
在今年3月,Rancher实验室推出了RancherOS,一款极度轻量的Linux操作系统,映像文件仅有22MB,一举夺下最轻量Container OS的宝座。
RancherOS的设计是纯粹为了执行Docker Container,因此而把Linux核心大大减肥,仅提供让Docker可以执行的后台程序。
开发RancherOS的Rancher实验室成员其实大有来头,他们多数来自Cloud.com,也就是先前开发了云端管理软件CloudStack的公司。
该公司在2011年被虚拟化厂商Citrix所并购。Rancher共同创办人及首席架构师 Darren Shepherd表示,在尝试各种不同Linux版本执行Docker后,他决定自己打造专门运行Docker的最小Linux版本。
RancherOS的设计充分利用了Container的架构,RancherOS将整个架构主要分成系统Container与用户Container两大区。
系统Container就是把操作系统的诸多服务都打包成一个个独立的容器。
而用户Container则与系统Container不同,是由用户建立的各个应用服务容器。
RancherOS会启动两个Docker,一个是系统Docker,另一个则是用户Docker。
系统Docker的功能就如同其它Linux版本中的初始化系统,如sysvinit或systemd,负责启动系统初始化服务。
系统Docker会将操作系统的服务如udev、DHCP和控制台(console),都打包成Container,统一来管理。
另一个则是用户Docker,也就是管理所有用户建立的各种应用程序Container。
在此隔离的设计下,即使删除所有的用户Container也不会影响运行RancherOS的系统Container。
RancherOS是由Docker管理的Container所组成。RancherOS会启动两个Docker主机:系统Docker及用户Docker。
RancherOS透过Rancher来管理各集群中的Container,也可以实时监控各集群目前的状态。
Red Hat Project Atomic
红帽(Red Hat)拥抱Linux Container技术,成立原子项目(The Atomic Project),建立完整的Container生态系统。
红帽(Red Hat)在2014年4月的Red Hat Summit大会首度宣布容器系统Atomic Host项目,顾名思义,就是指系统是以原子化的方式组成。
今年3月Red Hat正式推出专为Docker容器而打造的Red Hat Enterprise Linux 7 Atomic Host。
为了强化系统安全性,Atomic Host是基于SELinux核心,使用了Kubernetes作为Container集群环境的调度管理(Orchestration)引擎。
此外,比较大的不同是Atomic Host采用OSTree而非传统的RPM。
OSTree是具有版本控制功能的文件系统,可进行原子式版本更新,若更新失败,可以很快倒回之前正常的版本。
Atomic Host还搭配Cockpit浏览器管理接口,让用户可以利用网页浏览器管理服务器,执行储存分配、检查日志或中断服务器中的某项服务等事务。
Atomic Host针对不同的环境,提供不同的安装镜像文件,部署所需要的空间也不同。
根据官方提供的数据,Atomic Host部署在OpenStack需354MB、在RHEV(Red Hat Enterprise Virtualization)下需要332MB、在vSphere下需要342MB、在Hyper-V下需要810MB,而在裸机下则需624MB。
Project Atomic最初的架构图,原本Red Hat使用GEARD对Container进行调度管理,现在则转为使用Kubernetes。
Atomic使用SELinux确保 Container的安全性,其作法是在Linux Container命名空间内对Container进行强制访问控制(Mandatory Access Control,MAC)。
VMware Photon
VMware首次推出的Linux操作系统Photon,为vSphere优化的Container执行平台。
虚拟化厂商VMware在今年4月推出了自家的Linux版本Photon,用于打造轻量级虚拟化Container环境的轻量级Linux操作系统。
Photon提供4种安装模式,而4种模式所占的镜像文件大小都不一样,如全安装占了1.7GB,最小安装(Minimal)则需303MB,微安装(Micro)需要462MB,至于最后一个自定义安装则介于全安装及最小安装两者之间。
VMware表示,Photon是一个为vSphere优化的Container执行平台,可以支持多项Container技术,如Docker、Rocket Container(rkt)和Pivotal Garden Container镜像文件。
如同Atomic Host、CoreOS或是近日微软开发者大会上发表的Nano Server,Photon也是以提供Container执行环境为目的的轻量操作系统。
Photon可部署于vSphere 5.5、vSphere 6.0、vCloud Air、VMware Fusion和VMware Workstation产品上,除了协助企业将Fusion、VMware Workstaion等测试环境上的应用程序,搬迁到使用vSphere上的正式环境,并通过Lightwave对Container进行访问控制、身份管理等功能。
企业也可以整合Lightwave和Photon,提供多租户目录服务,加强大量Container的管理,例如限定特定Container所能执行的主机,并且限制只有特定权限的使用者可以管理Container。
Photon可部署在vSphere之上,并透过Lightwave对Container进行访问控制、身份管理等功能。
Photon可以提供4种安装模式:微安装(Micro)、最小安装(Minimal)、全安装及客制化安装,每种模式的映像文件大小都不一。
Snappy Ubuntu Core
Canonical推出Snappy Ubuntu Core,可搭载在使用Ubuntu Core的装置上
去年12月,Canonical推出了Snappy Ubuntu Core,是由Ubuntu 8.10服务器操作系统衍生出的一款轻量Linux操作系统。
Canonical表示,Snappy Ubuntu Core除了是设计给云端运算及物联网(IoT)而生的一款Ubuntu,更是一款轻量的服务器镜像文件。
Snappy Ubuntu Core也为了运作Docker Container所设计及优化,同时内建了命令字符接口,通过Snappy Ubuntu Core,让打包在Docker中的应用程序可简单的被传输。
虽然使用与Ubuntu同样的函数库(libraries),但是在架构上,Snappy Ubuntu Core与传统的Ubuntu有所不一样。
Snappy Ubuntu Core由3层不同的架构,由下至上而组成:主机(Host)、架构(Framework)、应用程序(Applications)。
主机是物理层,可以是手机、VM、服务器或任何搭载Snappy Ubuntu Core的设备。
架构层则提供应用程序运行的基础,如目前所支持的Docker,而此层架构不与底层操作系统有依赖性,更新时不必担心会对底层操作系统产生影响。
应用程序则在架构层上运行,容器化的应用程序可以通过Docker打包后进行部署。
而Snappy Ubuntu Core也被认为奠定了Canonical进军物联网的基础,它目前可以支持的IoT设备。如:树莓派第二代(Raspberry Pi 2)、狗骨头(Beaglebone Black)及Odroid-C1等迷你Linux计算机平台上。
此外,Canonical也与微软合作,开发以Snappy Ubuntu Core为基础的API,用来连接企业用物联网设备。
Ubuntu Snappy Core使用Docker等架构(Framework)打包应用程序后,就可以进行部署。
Ubuntu目前可以支持如树莓派第二代( Raspberry Pi 2)、狗骨头(Beaglebone Black)等迷你Linux计算机平台上。
Windows Nano Server
微软重构现有服务器操作系统,推出为执行云端原生应用程序及Container而生的Nano Server
在近日的微软开发者大会上,微软正式公布了Nano Server。
微软表示,Nano Sever是将现有服务器架构重新设计而推出的一款轻量服务器操作系统,特地为执行云端原生应用程序及Container而设计,并且为云端环境及DevOps工作流程所优化。
微软表示,用户经常抱怨必须为了修补从未使用的组件而重启动服务器,而大型服务器需要较长的时间部署,也耗费较多带宽,倘若服务器操作系统可使用更少的资源,那么就可增加虚拟机的密度。因此,微软为满足日渐兴盛的云端需求,而推出轻量Nano Server。
此外,Nano Server也仅提供运作必要的组件,让原本服务器核心从4.84GB大幅减肥至400MB,达到操作系统轻量化的目的。比起Windows Server Core,Nano Server更进一步做了精简。Nano Server移除了图形用户接口、对32位版本的支持、MSI以及其余不必要的默认Server Core组件。
此外,Nano Server不支持使用本地登录,也不能使用远程桌面功能。
如果用户想对Nano Server进行管理,只能通过WMI(Windows Management Instrumentation)和PowerShell这两种工具。
微软表示,Nano Server是为执行原生云端应用程序而设计,可在Container、VM或实体服务器环境下支持多种程序开发语言,包括C#、Java、Node.js及Python,并且支持执行Hyper-V的运算集群和执行横向扩充的File Server存储集群。
根据微软提供的数据,与传统的Windows Server相比,Nano Server的虚拟硬盘(VHD,Virtual Hard Disk)所占空间减少了93%、重大安全事件减少了92%,而重开机所需时间更减少了80%。
经重组Windows Server架构后而生的Nano Server,不论是安装时间、硬盘空间或虚拟硬盘大小都大幅减少。
使用者可以在Nano Server上部署Hyper-V Container及Windows Server Container。