Hypernetes實現多租戶CaaS,且無需客戶操作系統

jopen 8年前發布 | 10K 次閱讀 操作系統 Hypernetes

Hypernetes 使用一個最小Linux內核取代了虛擬機中的客戶操作系統作為容器的宿主,這樣就避免了運行全功能操作系統的開銷。

HyperHQ 在十月份發布了Hypernetes。InfoQ采訪了該公司的前開發大使 Thibault BronchainVisualOps 創始人兼Hyper投資人 Peng Zhao ,他們詳細談論了Hypernetes的工作原理。

Hypernetes使用 Hyper 項目作為容器宿主,并使用了 OpenStack (一種基礎設施即服務軟件)的一些組件和 Kubernetes (一種管理Linux集群的框架)。Hypernetes由Kubernetes派生而來。

Hypernetes的其中一個組件——Hyper項目——提供了一個裸機上的容器運行時。通常,容器要在虛擬機里的一個客戶操作系統上啟動。Hyper使用一個名為 HyperKernel 的小型Linux內核啟動VM,將客戶OS/VM層“扁平化”。這是Hyper與其他容器運行時的主要不同之處。關于這一點,Bronchain補充說:

Hyper正是使用一個單獨的Linux內核取代了“客戶操作系統”。這樣配置出來的VM是超輕量級的,而且配置非常快。它們的啟動時間是亞秒級的,不會過多增加Linux容器的啟動時間。

在Hyper啟動內核以后,名為HyperStart的初始化服務會創建一個Pod。一個Pod是一個容器鏡像集合,而這些鏡像是同一個邏輯組的一部分。這是從 谷歌 借用 的一個概念。例如,在一個微服務架構中,一個Pod可能包含多個輔助程序,如日志和監控。Bronchain解釋了他們選擇Kubernetes而不是Mesos和Swarm的原因:

我們認為,Kubernetes是最可靠、最容易使用的調度器。我們對使用其他調度器實現Hyper持開放態度,但我們仍然要制定我們的路線圖。

按照Bronchain的說法,可以使用其他任何Linux內核取代定制的Hyper內核,但目前并沒有文檔說明,而且也不容易做。

OpenStack是一個用于構建和管理云的IaaS框架,Hypernetes使用了它的部分組件。它使用OpenStack的身份和服務目錄提供程序 Keystone 進行身份驗證和授權。它還使用了其他的OpenStack組件,如用于存儲的 CinderCeph ,用于網絡管理的 Neutron 。對于OpenStack而言,這是一個獨特的用法,因為其組件通常都不在OpenStack部署之外使用。

作為一個容器運行時,Docker已經成熟并被廣泛采用。那么為什么會有人想要使用一種尚處于發展初期的替代方案呢?Zhao是這樣說的:

世界正在向公有云靠近。不管Linux容器的性能有多好,人們都是在虛擬機里運行容器。因此,使虛擬機像容器一樣運行,以便簡化基礎設施棧,實現新服務,這是有意義的。而且,很難想象,在一個基于容器的公有云上,每個人都被迫使用一個單獨的內核版本。

在這個生態系統里還有其他的玩家,如 Ubuntu的LXD 就被稱為“Linux容器管理程序”。在回答InfoQ關于Hypernetes與LXD相比怎么樣的問題時,Zhao說:

LXD仍然是基于Linux容器,但能夠模擬一個完整的VM,并且具有額外的安全特性。不過,Hyper試圖提供的是一種以應用為中心的Docker體驗。雖然Hyper使用“管理程序(hypervisor)”,但它不會像一個完整的VM那樣運行。

另一個類似的產品是 CoreOS ,這是一個基于Linux的、輕量級的操作系統,專門設計用于托管使用諸如Docker、 rkt 這樣的運行時的容器。不過,Hyper只啟動一個最小的內核用于托管容器,而CoreOS是一個操作系統, 內置支持服務發現,并且運行在上面的容器可以共享配置

GitHub提供了Hypernetes的 源代碼 以及 部署說明

查看英文原文: Hypernetes Enables Multi-Tenant CaaS Without a Guest OS

</div>

來自: http://www.infoq.com/cn/news/2015/12/hypernetes-caas

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!