6個出色的Kubernetes發行版,哪款最適合你?
作者簡介
Christopher Tozzi,自2008年來以自由職業者的身份對Linux、虛擬化、容器、資料儲存及其相關主題進行報道。
本文來自Rancher Labs
時至今日,通過Kubernetes編排容器化應用程式已經成為絕大多數人的第一選擇,Kubernetes可以幫助使用者輕鬆實現企業級部署。但是,在安裝Kubernetes之前,你還需要再瞭解一件事:Kubernetes發行版。絕大多數情況下,使用者不會直接從原始碼中安裝Kubernetes,而是在軟體公司和雲供應商提供的眾多Kubernetes發行版中進行選擇。
那麼,什麼是Kubernetes發行版?當前又有哪些出眾的Kubernetes發行版呢?
什麼是Kubernetes?
在討論Kubernetes發行版之前,我們先來回顧一下什麼是Kubernetes。
Kubernetes是一個用於容器編排的開源平臺,它使容器部署應用程式所需的許多工實現了自動化,包括啟動和停止單個容器,以及確定叢集中的哪些伺服器應當承載哪些容器。如果你還想了解更多關於Kubernetes的基礎知識,歡迎查閱以下文章:
再也不用擔心學不會K8S!17個K8S初學者必須掌握的知識點
零基礎入門│帶你理解Kubernetes
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最實用的解決方案。