作者簡介
Christopher Tozzi,自2008年來以自由職業者的身份對Linux、虛擬化、容器、數據存儲及其相關主題進行報道。
本文來自Rancher Labs
時至今日,通過Kubernetes編排容器化應用程序已經成為絕大多數人的第一選擇,Kubernetes可以幫助用戶輕松實現企業級部署。但是,在安裝Kubernetes之前,你還需要再了解一件事:Kubernetes發行版。絕大多數情況下,用戶不會直接從源代碼中安裝Kubernetes,而是在軟件公司和雲供應商提供的眾多Kubernetes發行版中進行選擇。
那么,什么是Kubernetes發行版?當前又有哪些出眾的Kubernetes發行版呢?
什么是Kubernetes?
在討論Kubernetes發行版之前,我們先來回顧一下什么是Kubernetes。
Kubernetes是一個用於容器編排的開源平台,它使容器部署應用程序所需的許多任務實現了自動化,包括啟動和停止單個容器,以及確定集群中的哪些服務器應當承載哪些容器。如果你還想了解更多關於Kubernetes的基礎知識,歡迎查閱以下文章:
再也不用擔心學不會K8S!17個K8S初學者必須掌握的知識點
Kubernetes是容器生態系統中的其中一個容器編排平台,另外兩個容器編排工具分別是Docker Swarm和Mesos Marathon,在本文中我們不會詳述。當我們提及容器編排平台時,我們首先想到的是Kubernetes——因為Kubernetes享有最高的市場關注度,或許還占有最大的市場份額。
什么是Kubernetes發行版?
作為一個開源項目,用戶可以在GitHub上免費獲取Kubernetes的源代碼。任何人都可以使用這個源代碼在自己選擇的基礎架構上下載、編排和安裝Kubernetes。然而,大多數想要安裝Kubernetes的人並不會選擇下載和編排源代碼,主要有如下三方面的原因:
-
費時費力:Kubernetes源代碼數量非常龐大,從頭開始構建它們需要花費大量的時間和精力。另外,無論你什么時候要更新安裝,都必須重新構建所有內容。
-
多組件:Kubernetes不是單一應用程序,而是一套不同的應用程序和工具。如果你從源代碼安裝它,那么你必須在構建Kubernetes集群的所有服務器上分別安裝這些組件。
-
配置復雜:由於Kubernetes沒有安裝向導或是自動配置腳本,因此你還必須手動配置Kubernetes的所有組件。
大多數人選擇Kubernetes發行版來滿足他們的容器編排需求。Kubernetes發行版是一個提供了預先構建版本的Kubernetes的軟件包。大多數Kubernetes發行版還提供了安裝工具,使安裝過程變得更加簡單。部分Kubernetes發行版還集成了其他軟件,可以處理集群監控和安全性等任務。
從這個意義上講,你可以將Kubernetes發行版看作是Linux發行版的同類。當大多數人想要在PC或是服務器上安裝Linux的時候,他們使用的發行版是一個預先構建的Linux內核,該內核與各種其他軟件包集成在一起。幾乎沒有人會選擇從頭下載Linux源代碼。
主要的Kubernetes發行版有哪些?
從技術上看,任何包含Kubernetes預先構建版本的Kubernetes的軟件包或平台都可以算作Kubernetes發行版。就像任何人都可以構建自己的Linux發行版一樣,任何人都可以建立一個Kubernetes發行版。
但是,如果你希望使用Kubernetes發行版來完成重要的工作,你可以在以下幾個主要的發行版中進行選擇:
-
Rancher:Rancher容器管理平台是基於Kubernetes來構建的,多集群Kubernetes部署是Rancher的Kubernetes發行版強調的重點。如果你想跨多個雲部署Kubernetes,或者由於某些原因不希望使用命名空間隔離Kubernetes工作負載,那么Rancher將是你的首選項。Rancher可以部署在本地數據中心和雲上,甚至可以在包含兩者的跨基礎設施架構上工作。Rancher和OpenShift的相似之處在於它在Kubernetes上集成了多種工具,但Rancher更為靈活,基於Rancher你可以自由選擇組件。
-
OpenShift:OpenShift是一個包含了Kubernetes以及其他各種運行、部署和管理容器所需工具的容器化平台。這是一個相對不太靈活的Kubernetes發行版,當你在使用工具和平台來構建完整的容器化堆棧時,它並不會給予你太多的選擇。另一方面,OpenShift提供了幾乎所有你可能需要的開箱即用的工具,你將獲得盡可能接近完整的Kubernetes。OpenShift由Red Hat開發,可以同時在本地數據中心和雲中運行。
-
Canonical Kubernetes:開發Ubuntu Linux的Canonical公司提供了功能強大且具有支持良好的Kubernetes發行版。除了要求你必須使用Ubuntu,Canonical的Kubernetes發行版相對“純粹”,如果你希望安裝組件,你可以將它與你所需的任何組件進行集成。它可以在本地數據中心或者雲中運行。
-
Google Kubernetes Engine:當其他雲供應商專注於自己的編排工具時,谷歌雲就已經押注在Kubernetes身上了,這並不稀奇,從Kubernetes項目伊始,Google便是Kubernetes的主要支持者。如今,Google Kubernetes Engine是一種靈活且簡單的Kubernetes發行版。由於它運行在谷歌雲中,因此你無需擔心安裝問題。
-
Azure Kubernetes Service:Azure曾經將賭注押在Docker Swarm上,但是Azure Kubernetes Service(AKS)現在是Azure雲的主要編排解決方案。這是一款僅運行在雲上的Kubernetes發行版。
-
AWS Elastic Kubernetes Service:雖然AWS雲上的容器服務Elastic Container Service(ECS)擁有自己的編排器,但AWS還提供了Elastic Kubernetes Service(EKS),這是一種圍繞Kubernetes構建的替代方案。和AKS一樣,EKS僅在雲上運行。
結 語
Kubernetes是一個復雜的容器編排平台,並非每個人都可以消化它。但幸運的是,Kubernetes發行版可以輕松實現Kubernetes的優勢,而無需自己從頭開始建立Kubernetes。對於大多數用例而言,以上所提及的Kubernetes發行版是安裝和運行Kubernetes最實用的解決方案。