如何選擇合適的Kubernetes發(fā)行版?
譯文【51CTO.com快譯】你想使用Kubernetes來編排容器化應(yīng)用程序,這對你有好處。有了Kubernetes,就可以輕松實現(xiàn)企業(yè)級部署。不過在實際安裝Kubernetes之前,你需要考慮的一點是Kubernetes發(fā)行版。在大多數(shù)情況下,你不會從源代碼安裝Kubernetes,而是使用眾多軟件公司和云供應(yīng)商提供的各種Kubernetes發(fā)行版中的一種。
Kubernetes是什么?
談?wù)揔ubernetes發(fā)行版之前,不妨簡要介紹一下Kubernetes。Kubernetes是一種用于容器編排的開源平臺。Kubernetes使使用容器部署應(yīng)用程序所需的許多任務(wù)實現(xiàn)自動化,包括啟動和停止每個容器,以及確定集群中的哪些服務(wù)器應(yīng)托管哪些容器。
Kubernetes只是市面上的幾種容器編排工具之一,其他受歡迎的選擇包括Docker Swarm和Mesos Marathon。不過說到容器編排,Kubernetes受到大多數(shù)人的追捧,可能也占有大多數(shù)市場份額。
Kubernetes發(fā)行版是什么?
作為一個開源項目,Kubernetes將源代碼放在GitHub上,供人免費獲取。誰都可以使用該源代碼,下載和編譯Kubernetes,并安裝到自己選擇的基礎(chǔ)架構(gòu)上。但大多數(shù)想要安裝Kubernetes的人絕不會下載和編譯源代碼,原因如下:
- 費時費力:有大量的Kubernetes源代碼,從頭開始構(gòu)建需要耗費大量的時間和精力。另外,只要你想更新安裝的系統(tǒng),就必須重新構(gòu)建一切。
- 多個組件:Kubernetes不是單個應(yīng)用程序,而是一套不同的應(yīng)用程序和工具。如果你從源代碼安裝,就必須在你用于構(gòu)建Kubernetes集群的所有服務(wù)器上分別安裝這每一個組件。
- 復(fù)雜的配置:由于Kubernetes沒有安裝向?qū)Щ蜃詣优渲媚_本,因此你還得手動配置Kubernetes的各個組件。
大多數(shù)人轉(zhuǎn)向Kubernetes發(fā)行版以滿足容器編排需求。Kubernetes發(fā)行版是一個軟件包,提供了Kubernetes的預(yù)構(gòu)建版本。大多數(shù)Kubernetes發(fā)行版還提供安裝工具,以簡化安裝過程。一些還集成了另外的軟件,幫助處理監(jiān)控和安全之類的任務(wù)。
從這個意義上講,Kubernetes發(fā)行版好比Linux發(fā)行版。大多數(shù)人想要在PC或服務(wù)器上安裝Linux時,他們使用提供與其他各種軟件包集成的預(yù)構(gòu)建Linux內(nèi)核的發(fā)行版。幾乎沒人從頭開始去下載Linux源代碼。
主要的Kubernetes發(fā)行版有哪些?
從技術(shù)上講,任何包含Kubernetes預(yù)構(gòu)建版本的軟件包或平臺都可以算作Kubernetes發(fā)行版。就像任何人可以構(gòu)建自己的Linux發(fā)行版一樣,任何人可以創(chuàng)建Kubernetes發(fā)行版。
然而如果你希望使用Kubernetes發(fā)行版完成重要的工作,可以使用這幾種主要的發(fā)行版:
OpenShift:OpenShift是一個容器化平臺,包括Kubernetes以及運行、部署和管理容器所需的其他各種工具。從某種意義上來說,它是一種相對不靈活的Kubernetes發(fā)行版,因為它在用于構(gòu)建完整容器化堆棧的工具和平臺方面并沒有給你太多的選擇。另一方面,OpenShift本身隨帶你所需要的幾乎一切工具。它將相當(dāng)于提供一應(yīng)俱全的Kubernetes。 OpenShift由Red Hat開發(fā),可以在本地和云中運行。
Canonical Kubernetes:開發(fā)Ubuntu Linux的Canonical公司提供了一種功能強大且得到良好支持的Kubernetes發(fā)行版。除了要求你使用Ubuntu外,Canonical的Kubernetes發(fā)行版相對“純粹”,因為你可以選擇將其與所需的任何其他組件集成(只要你自行安裝)。它可以在本地或云中運行。
谷歌Kubernetes引擎:早在其他云供應(yīng)商專注于自己的編排工具時,谷歌云就已將賭注押在Kubernetes上(這并不奇怪,因為谷歌在Kubernetes項目一開始就是主要支持者)。如今,谷歌Kubernetes引擎是一種靈活又簡單的Kubernetes發(fā)行版。由于它在谷歌云中運行,你不必為安裝而擔(dān)心。
Azure Kubernetes服務(wù):Azure曾經(jīng)將賭注押在Docker Swarm上,但是Azure Kubernetes服務(wù)(AKS)現(xiàn)在是Azure云中的主要編排解決方案。這是僅在云上的Kubernetes發(fā)行版。
AWS Elastic Kubernetes服務(wù):盡管AWS云上的原始容器服務(wù)Elastic Container Service(ECS)具有自己的編排器,但AWS還提供了Elastic Kubernetes Services(EKS),它是圍繞Kubernetes構(gòu)建的替代方案。像AKS一樣,EKS僅在云中運行。
Rancher:Rancher的容器平臺現(xiàn)在基于Kubernetes。 Rancher的Kubernetes發(fā)行版特別著重于多集群Kubernetes部署,如果你想跨多個云部署Kubernetes或出于某些其他原因不希望使用命名空間,這可能會很有用(Kubernetes功能可讓你劃分單個集群服務(wù)器劃分為虛擬區(qū)域)以隔離你的Kubernetes工作負載。 Rancher可以在內(nèi)部,云中甚至跨基礎(chǔ)架構(gòu)(包括兩者)進行工作。 Rancher與OpenShift相似之處在于,它將Kubernetes與其他各種工具集成在一起,盡管它更加靈活,因為它在確定使用哪些組件方面提供了一些選擇。
結(jié)論
要說Kubernetes是復(fù)雜的野獸,那就輕描淡寫了。幸運的是,Kubernetes發(fā)行版使你可以輕松利用Kubernetes,而無須再從頭開始設(shè)置Kubernetes。對于大多數(shù)使用情況,上述Kubernetes發(fā)行版之一是使用Kubernetes進行安裝和運行的實用方法。
原文標(biāo)題:How to Choose the Right Kubernetes Distribution,作者:Christopher Tozzi
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】