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