引領容器革命的12款Kubernetes發行版
譯文【51CTO.com快譯】Kubernetes和容器正在改變構建、部署和管理應用程序的方式。本文介紹的這些發行版扮演了急先鋒的角色。
如果你需要大規模的容器編排,Kubernetes已成為值得依賴的項目。這個出自谷歌的開源容器編排系統備受好評,受到良好的支持,而且發展迅速。
同時Kubernetes龐大而復雜,設置和配置起來有難度。不僅如此,許多繁重的工作留給了最終用戶。因此,最好的方法就是別試圖單槍匹馬去搞,而是找一款含有Kubernetes這個受到支持和維護的組件的整套容器解決方案。
我在這里列出了12個最知名的Kubernetes產品,實際上就是整合了Kubernetes及容器工具的發行版,就像許多開發商提供Linux內核及其用戶空間(userland)的眾多發行版那樣。
請注意,本文不包括專用的云服務,比如亞馬遜EKS或谷歌Kubernetes引擎,而是重點介紹可在本地運行或作為一種云托管選項的軟件發行版。
1.CoreOS Tectonic
CoreOS提供專注于容器的Linux發行版,與Docker兼容,但又有自成一體的鏡像格式和運行時環境,還提供一款“企業級Kubernetes”發行版。它們一起構成了CoreOS Tectonic架構的基礎。
CoreOS操作系統Container Linux與眾不同,主要是它作為一組容器化的組件來加以交付。這樣一來,操作系統的自動更新版可以在不影響應用程序正常運行的情況下推送到生產環境。CoreOS還宣稱可以“一鍵式”更新Kubernetes。CoreOS Tectonic可以在亞馬遜網絡服務(AWS)、微軟Azure和裸機上運行。
相關鏈接:https://coreos.com/tectonic/
2.Canonical的Kubernetes發行版
Ubuntu Linux的開發商Canonical提供自家的Kubernetes發行版。Canonical的Kubernetes發行版的一大賣點是,底部是備受推崇、為人所熟知、經常部署的Ubuntu Linux發行版。Canonical聲稱,其架構可以在任何云或本地部署環境中運行,還支持CPU驅動的工作負載和GPU驅動的工作負載。付費客戶可以讓Canonical工程師遠程管理Kubernetes集群。
Canonical和Rancher Labs(見下文)共同開發了一個產品Cloud Native Platform,該產品結合了Canonical的Kubernetes發行版和Rancher的容器管理平臺。其想法是,使用Kubernetes來管理每個集群中運行的容器,并使用Rancher來管理多個Kubernetes集群。Cloud Native Platform將隨Rancher 2.0一同發布,該版本目前提供測試預覽版。
相關鏈接:https://www.ubuntu.com/kubernetes
3.Docker社區版/ Docker企業版
對于許多人來說,Docker就是容器。自2014年以來,Docker就有自己的集群和編排系統Docker Swarm,就在不久前它還是Kubernetes的競爭對手。然后在2017年10月,Docker宣布添加Kubernetes(未加任何改動),作為Docker社區版和Docker企業版的標準插入式組件。
簡而言之,Docker公司已察覺到了容器編排領域的不祥之兆,承認Kubernetes比Swarm更適合管理大型的復雜容器環境。然而,Docker仍包括一種“swarm模式”,面向相對一般的集群作業――比如不太可能急劇增長的防火墻后面的本地應用程序。
相關鏈接:https://www.docker.com/kubernetes
4.Heptio Kubernetes Subscription
Kubernetes的兩位開發者Craig McLuckie和Joe Beda創立了Heptio,提供圍繞Kubernetes的服務和產品。他們的第一個主要產品是Heptio Kubernetes Subscription(HKS),這個Kubernetes發行版得到Heptio提供的24/7全天候收費支持。起價為每月2000美元。
Heptio的主要推銷口號是不會有廠商鎖定的企業級Kubernetes。該發行版可以在公共云或私有硬件上運行。Heptio提供的用于管理Kubernetes配置的所有工具都是開源工具,修補程序直接發送到受支持的集群。
相關鏈接:https://heptio.com/products/kubernetes-subscription/
5.Mesosphere DC/OS
Mesosphere DC/OS使用Apache Mesos將一群機器變成可以為多個應用程序動態劃分的單一資源。Kubernetes作為眾多應用軟件包之一在DC/OS上受到支持,那樣你可以跨DC/OS集群安裝、運行和更新Kubernetes。
DC/OS本身是不是Kubernetes發行版有待商榷,這是由于Kubernetes并不完全是DC/OS的一部分,但是可以借助DC/OS像其他受支持的應用程序那樣來部署――這有點像借助Linux發行版的軟件包管理系統來提供Linux應用程序那樣。然而,Mesosphere對Kubernetes采取的方法恪守Kubernetes的工作方式――比如說,它使用Kubernetes的主線社區發行版來確保與現有的工具集高度兼容。
相關鏈接:https://mesosphere.com/solutions/kubernetes/
6.Mirantis云平臺
正如Mirantis所言,Mirantis云平臺整合OpenStack、Kubernetes或兩者的組合體,作為一種“敏捷基礎設施平臺”的底層。簡而言之,Mirantis云平臺是一種單一的集成解決方案,用于編排虛擬機、容器和裸機服務器。部署在該平臺上的應用程序在整個生命周期內以“devops方式”加以管理,使用Salt作為配置管理工具,并整合了持續集成/持續交付(CI/CD)支持功能,確保應用程序正確部署。
Mirantis云平臺可以直接在裸機上、OpenStack集群中或公共云上運行Kubernetes。 Mirantis聲稱,Mirantis云平臺讓用戶更容易使用Kubernetes,因為配置Kubernetes底層的基礎設施這項工作不會落到最終用戶身上。
相關鏈接:https://www.mirantis.com/software/mcp/
7.Platform9 Managed Kubernetes
大多數Kubernetes發行版專注于讓Kubernetes從內到外和從上到下都易于管理。 Platform9 Managed Kubernetes可以在你部署它的任何環境中運行,無論是本地裸機還是遠程公共云,但可以由Platform9的工程師來遠程管理。
Platform9在客戶的監督下大概每周六對Managed Kubernetes進行一次更新。Platform9提供了通常要手動添加到Kubernetes集群的功能,比如針對多租戶場景的用戶配額。還包括與Platform9的Fission項目集成的功能,Fission項目是一種無服務器計算(又叫“函數即服務”)系統,與幾乎任何編程語言兼容,擁有容器化的運行時環境。
相關鏈接:https://platform9.com/managed-kubernetes/
8.Rancher 2.0
Rancher Labs已將Kubernetes集成到其版本2.0的容器管理平臺(名為Rancher,目前處于測試階段)。Rancher 2.0在比其他Kubernetes發行版更高的層面上運行,位于Linux主機、Docker容器和Kubernetes節點上,無論是什么位置或基礎設施,它都可以輕松管理這一切。它甚至可以管理亞馬遜EKS、谷歌Kubernetes引擎、Azure Container Service及其他Kubernetes即服務云上的Kubernetes集群。
Rancher還隨帶自己的Kubernetes發行版。Rancher旨在消除為特定的環境搭建Kubernetes集群和定制Kubernetes這個過程中的許多麻煩,又避免那些定制妨礙順利升級到Kubernetes――對于一個迅速發展、不斷更新的項目而言這是重要的考量因素。
相關鏈接:https://rancher.com/kubernetes/
9.Red Hat OpenShift
Red Hat的PaaS產品Red Hat OpenShift最初使用類似Heroku構建包的“cartridge”來打包應用程序,然后將應用程序部署在名為“gear”的容器中。后來出現了Docker,OpenShift作了改動,以充分利用新的容器鏡像和運行時標準。Red Hat還采用了Kubernetes作為OpenShift中的編排技術,這是不可避免的。
開發OpenShift的目的是為PaaS中的所有組件提供抽象和自動化機制。這種抽象和自動化還擴展到了Kubernetes,這仍帶來了相當大的管理負擔,于是OpenShift用來緩解這個負擔,以完成部署PaaS這個更重大的任務。
相關鏈接:https://www.redhat.com/en/technologies/cloud-computing/openshift
10.Stackube
HyperHQ提供用于運行容器的Hyper.sh云服務,它開發了Stackube,這是一款“以Kubernetes為中心的OpenStack發行版”。通常,OpenStack使用一個名為Nova的組件來配置和管理計算節點,Stackube而是使用Kubernetes。但除此之外,它使用“普通版”OpenStack和Kubernetes,其他所有細節由OpenStack插件來處理。
HyperHQ聲稱Stackube具有的一大優勢是,它可以根據所用的容器運行時環境來提供不同程度的多租戶機制。針對“軟”多租戶模式,有Docker;若想更可靠地隔離資源,則有HyperContainer,它使用虛擬機管理程序級別的隔離。
相關鏈接:https://github.com/openstack/stackube
11.SUSE云即服務(CaaS)平臺
SUSE是一款在歐洲非常流行的Linux發行版,它提供SUSE CaaS平臺。從概念上來講,它讓人聯想到CoreOS Tectonic――該系統捆綁了運行容器的裸機“微型”操作系統、作為容器編排系統的Kubernetes、內置的鏡像注冊中心和集群配置工具。
SUSE CaaS平臺在公共云和本地裸機上都可以運行,不過?要注意“SUSE目前不支持整合到底層云基礎設施的任何功能”。這意味著SUSE CaaS平臺的初衷并不是補充亞馬遜EKS或谷歌Kubernetes引擎,而是為了避開它們,讓用戶可以跨多個云和數據中心運行容器。
相關鏈接:https://www.suse.com/products/caas-platform/
12.Telekube
Teleport SSH服務器系統的開發商Gravitational還開發Telekube,這是一款可在本地或遠程集群上運行的“針對生產環境作了強化”的Kubernetes發行版。Telekube的定位是作為一款面向專有SaaS平臺的解決方案,或者跨多個地區或多家主機托管提供商將Kubernetes作為服務來運行。
Telekube上的應用程序必須準備好,才可以在Kubernetes上的容器中運行。它們還必須打包成“Bundle”,然后發布到Kubernetes集群上進行分發。除了所有其他的準備外,捆綁(Bundling)還需要做一些另外的工作,那樣才能部署基于容器的應用程序,但Bundle清單文件是你需要維護的Telekube所特有的唯一的附加部分。
相關鏈接:https://gravitational.com/telekube/
原文標題:12 Kubernetes distributions leading the container revolution,作者:Serdar Yegulalp
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】