UnitedStack上線Atomic鏡像 讓Docker部署和管理更Easy
2015年6月18日,UnitedStack有云上線Atomic鏡像,開發(fā)者可以在UOS公有云平臺上體驗***的Fedora Cloud Atomic容器操作系統(tǒng)。
這是繼上線CoreOS鏡像之后,UnitedStack有云對容器技術(shù)的又一有力支撐,也成為國內(nèi)目前唯一一個同時提供這兩個鏡像的IaaS廠商。
Atomic是Red Hat公司發(fā)起的以應(yīng)用為中心的操作系統(tǒng),它可以更方便地部署和管理你的Docker容器。Atomic基于成熟的底層操作系統(tǒng),保證容器運行環(huán)境的安全,并且集成了Kubernetes、Systemd等管理工具,提供容器應(yīng)用部署的全套解決方案。對于Atomic采用的Kubernetes調(diào)度系統(tǒng),我們也將在近期推出Kubernetes系列教程,歡迎大家關(guān)注。
與傳統(tǒng)操作系統(tǒng)不同,Atomic經(jīng)過裁剪后體積更小更容易維護,并且集成了SELinux安全技術(shù),讓Docker容器有更好的安全隔離,還有Gockpit等工具讓容器的部署和管理更加方便。
項目官網(wǎng) http://www.projectatomic.io
CoreOS是基于Chrome OS定制的Linux發(fā)行版,而Atomic是基于更成熟的RHEL和Fedora。CoreOS使用了自己研發(fā)的Fleet來管理容器生命周期,Atomic則集成了Google開源的Kubernetes調(diào)度系統(tǒng),同時提供了Geard工具來部署多個容器。Atomic也可以集成SELinux,提供更安全、專門為容器設(shè)計的運行環(huán)境,開發(fā)者遷移到新的系統(tǒng)架構(gòu)也更加容易。
兩個操作系統(tǒng)目前都依賴Etcd做配置管理,提供容器部署和調(diào)度服務(wù),而且現(xiàn)在只支持***的Docker容器。
在UOS上啟動Atomic系統(tǒng)非常簡單,在“創(chuàng)建云主機” 中選擇***的“Fedora Cloud Atomic 22 64bit”鏡像,分配CPU和內(nèi)存后即可使用。
為了連接外網(wǎng),你可以在“公網(wǎng)IP”頁面創(chuàng)建公網(wǎng)IP。
然后在“云主機”頁面綁定剛申請的公網(wǎng)IP。
綁定后IP后,UOS提供了VNC終端,在瀏覽器就可以操縱你的Atomic操作系統(tǒng)了。
啟動Atomic系統(tǒng)后,通過創(chuàng)建云主機時提供的用戶名和密碼登陸。默認的Atomic鏡像已經(jīng)預(yù)裝了***版的Docker、Etcd和Kubernetes等工具,通過命令行就可以查看工具的版本信息。啟動Docker服務(wù)的命令也很簡單,“service docker start”。
可以看出Atomic已經(jīng)是預(yù)裝好Docker的Linux運行環(huán)境,使用Atomic甚至比原生的CentOS或Ubuntu更加方便。所有基于Docker的容易都能很方便地運行,下面演示在Atomic系統(tǒng)快速啟動一個Nginx容器。
前面提及到,Atomic整合了Etcd和Kubernetes,它們分別是容器的調(diào)度系統(tǒng)和配置管理系統(tǒng)。啟動Kubernetes后就是一個Container as a Service“私有云”,我們可以直接部署容器到集群上而不必考慮底層的硬件資源,啟動服務(wù)命令如下。
注意我們現(xiàn)在把Master和Minion跑在同一臺服務(wù)器上,實際上kublet和kube-proxy也可以部署在多臺Minion上組成Kubernetes集群。基礎(chǔ)服務(wù)正常起來后,通過命令可以檢查各個進程當(dāng)前的狀態(tài)和日志。
```
service docker status
service etcd status
service kube-apiserver status
service kube-controller-manager status
service kube-scheduler status
service kubelet status
service kube-proxy status
jornalctl -f -l -xn -u etcd -u kube-apiserver -u kube-scheduler
```
Kubernetes是Google開源的容器調(diào)度系統(tǒng),吸收了Google使用容器的十多年經(jīng)驗,并對內(nèi)部系統(tǒng)Borg進行改造開源出來,逐漸成為Docker生態(tài)中***秀的調(diào)度框架。Kubernetes將運行在同一臺主機的容器組成Pod,并且使用Replication controller來管理一組Pod的備份數(shù),只要Pod運行個數(shù)與預(yù)期值不同系統(tǒng)就會自動地啟停容器,保證業(yè)務(wù)不受影響。
在集成環(huán)境Atomic中,我們很容易就可以啟動Pod或Replication controller了。我們啟動一個包含Nginx容器的Pod,并且暴露80端口。
Pod的定義文件開放在Github https://raw.githubusercontent.com/tobegit3hub/kubernetes_docker/master/nginx_pod.json
啟動后我們也可以使用Kubernetes的客戶端來查看當(dāng)前的集群狀態(tài),并且測試Nginx容器是否正常運行。注意***運行Nginx需要從Docker官方倉庫下載鏡像,等待時間稍長一些,這時通過“journalctl -f -u kubelet”可以查看進度。
Atomic也提供了啟動Replication controller的文檔,即使主動把Docker容器停止了,Kubernetes還是會自動把容器起起來,保證服務(wù)正常。具體的操作歡迎大家在UOS平臺上嘗試。
Atomic精簡了系統(tǒng)與容器無關(guān)的組件,并且預(yù)裝了Docker、Kubernetes等工具方便使用。除此之外,Atomic使用了Rpm-ostree的包管理系統(tǒng),好處就是讓系統(tǒng)回滾變得更簡單了,通過Ostree來創(chuàng)建一個二進制的Repo,Ostree的詳細教程可以在官網(wǎng)中找到。
而且Atomic使用了和CoreOS一樣的Systemd作為Init系統(tǒng),讓服務(wù)管理更加直觀和容易了,前面已經(jīng)使用過Systemd來啟動服務(wù)了,更詳細的systemd教程在官網(wǎng)也可以找到。
容器技術(shù)在近年發(fā)展迅猛,針對容器設(shè)計的操作系統(tǒng)競爭也越來越激烈,Red Hat推出的Atomic也符合這個潮流。總體而言Atomic使用了比較成熟的操作系統(tǒng)與容器技術(shù),并沒有顛覆傳統(tǒng)開發(fā)者的使用習(xí)慣,并且提供了更易用的容器運行環(huán)境。
近年來各大廠商都推出了基于容器的下一代IT架構(gòu),UnitedStack也積極關(guān)注容器的發(fā)展,到目前為止,UOS是***家也是唯一一家對兩大容器操作系統(tǒng)CoreOS和Atomic都支持的IaaS廠商。我們建立了一個容器服務(wù)交流QQ群(群號:462294386),方便大家交流。
關(guān)于作者:
陳迪豪,UnitedStack有云的基礎(chǔ)架構(gòu)工程師,目前專注于Docker、OpenStack社區(qū)。Docker監(jiān)控管理工具Seagull項目作者,開源電子書《理解Linux進程》作者。