在過去兩年中,Rancher已經成為最為流行和受歡迎的建立和管理Kubernetes叢集的平台之一。因為易于上手的特性和極緻簡單的使用者體驗,Rancher作為建立與管理Kubernetes的平台深受全球大量使用者青睐 。Rancher将etcd、Kubernetes master和worker節點操作完全自動化。然而Rancher 1.x中隻提供了Kubernetes的部署優化,2.0會繼續加強對Kubernetes使用和運作過程中的進一步的優化與支援。
現階段市場中有不少可供使用者選擇的用于建立Kubernetes叢集的安裝程式。據我們所見,其中兩個最受歡迎的安裝程式是kops和Kubespray:
Kops也許是使用最廣泛的Kubernetes安裝程式。事實上,它不僅僅是一個安裝程式。Kops為使用者備好了所有可能需要的雲資源,它能用來安裝Kubernetes,還可以連接配接雲監控服務,以確定Kubernetes叢集的持續運作。不過,Kops與底層雲基礎架構內建過于緊密,在AWS上表現最為優秀,而對GCE和vSphere等其他基礎架構平台的就不能提供支援。
Kubespray是用Ansible編寫的獨立Kubernetes安裝程式,它可以在任何伺服器上安裝Kubernetes叢集,非常受使用者歡迎。盡管Kubespray與各種雲API具有一定程度的內建,但它基本上是獨立于雲的,是以可以與任何雲、虛拟化叢集或裸機伺服器協同工作。目前,Kubespray已經發展成一個由大量開發人員參與的複雜項目。
Kubeadm是另一個跟随Kubernetes主版本分發的安裝工具。然而,Kubeadm還不支援像HA叢集這樣的功能。盡管在 kops和Kubespray等項目中使用了 kubeadm 某些代碼,但若作為生産級的Kubernetes安裝程式,kubeadm還不适合。
Rancher 2.0可以支援并納管任何Kubernetes叢集。我們鼓勵使用者使用GKE和AKS等公有雲雲托管服務。對于想要自行建立自己的叢集的使用者,我們正在考慮将kops或Kubespray內建到我們的産品陣容中。Kops不符合我們的需求,因為它并不适用于所有雲提供商。其實,Kubespray已經很接近我們的需要了,尤其是 Kubespray可以在任何地方安裝Kubernetes的這一特性。但最終,我們決定不采用Kubespray,而是建構自己的輕量級安裝程式,原因有兩個:
我們可以重新起步,利用Kubernetes本身的優勢建立一個更簡易的系統。
與在Rancher 1.6中安裝Kubernetes一樣,通過使用基于容器的方法,我們可以擁有更快的安裝程式。
RKE是一個獨立的可執行檔案,它可以從叢集配置檔案中讀取并啟動、關閉或更新Kubernetes群集。 如下是一個示例配置檔案:
如上所示,我們通過指定認證政策、網絡模型和本地SSH密鑰路徑來啟動檔案。叢集配置檔案的主體由以下三部分組成:
節點部分描述了組成Kubernetes叢集的所有伺服器。每個節點都承擔三個角色中的一個或多個角色:controlplane、etcd和worker。您可以通過更改節點部分并重新運作RKE指令來添加或删除Kubernetes叢集中的節點。
服務部分描述了在Kubernetes叢集上運作的所有系統服務。RKE将所有系統服務打包為容器。
插件部分描述了在Kubernetes叢集上運作的使用者級程式。是以,RKE使用者可以在同一檔案中指定Kubernetes叢集配置和應用程式配置。
RKE不是一個可以長時間運作的、可以監控和操作Kubernetes叢集的服務。RKE需要與像Rancher 2.0這樣的完整的容器管理系統或像AWS CloudWatch、Datadog或Sysdig等一樣的獨立監控系統配合使用。配合使用時,您就可以建構自己的腳本來監控RKE叢集的健康狀況了。
當使用者需要構件一個分布式應用系統時,常常不得不處理後端資料庫、資料通路層、叢集和擴充等方面的問題。現在,越來越多的開發人員不再使用傳統的應用程式伺服器,而是開始使用Kubernetes作為分布式應用程式平台:
開發人員使用etcd作為後端資料庫。
開發人員使用Kubernetes Custom Resource Definition(CRD)作為資料通路層,并使用kubectl在其資料模型上執行基本的CRUD操作。
開發人員将應用程式打包為容器,并使用Kubernetes完成叢集和伸縮工作。
以這種方式建構的應用程式将作為Kubernetes YAML檔案發送給使用者。如果使用者已經運作Kubernetes叢集,或可以通路公有雲托管的Kubernetes服務(如GKE或AKS),就可以輕松運作這些應用程式。但是,那些希望在虛拟化或裸機伺服器上安裝應用程式的使用者該怎麼辦呢?
通過将RKE作為嵌入式Kubernetes安裝程式捆綁到應用程式中,應用程式開發人員就可以解決上述需求。通過調用RKE,應用程式安裝便可以啟動,且會為使用者建立一個Kubernetes叢集。而我們已注意到,将諸如RKE之類的輕量級安裝程式嵌入到分布式應用程式中,滿足了很多來自使用者的興趣與需求。
Rancher Kubernetes Engine(RKE)秉承了Rancher産品一貫易于上手、操作簡單、體驗友好的特性,使使用者建立Kubernetes叢集的過程變得更加簡單,且我們相信通過雲管理平台進行Kubernetes安裝是大多數Kubernetes使用者的最佳選擇。
在Rancher Labs,我們希望Kubernetes有朝一日成為所有雲服務商支援的标準化的基礎架構,且一直在為了實作這個願景而努力。已推出技術預覽版、将于2018年初正式釋出的Rancher 2.0,将可以同時納管和導入任何類型、來自任何雲提供商的Kubernetes叢集,包括RKE、AWS EKS、Google Container Engine (GKE)、Azure Container Service (AKS)等等。
本文轉自 RancherLabs 51CTO部落格,原文連結:http://blog.51cto.com/12462495/2046377