如何選擇合適的Kubernetes發行版

  • 2020 年 3 月 15 日
  • 筆記

很多用戶採用Kubernetes協調其容器化應用程式。Kubernetes使用戶可以輕鬆實現企業級部署。但是在實際安裝Kubernetes之前,需要考慮的一件事是:Kubernetes發行版。

很多用戶採用Kubernetes協調其容器化應用程式。Kubernetes使用戶可以輕鬆實現企業級部署。但是在實際安裝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發行版。當大多數用戶想要在個人電腦或伺服器上安裝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發行版相對「純粹」,因為可以選擇將其與所需的任何其他組件集成(用戶可以自行安裝)。它可以在內部部署數據中心和雲平台中運行。

•Google Kubernetes引擎:當其他雲計算供應商專註於他們自己的編排工具時,Google雲押注Kubernetes(這並不奇怪,因為從項目開始,Google公司就是Kubernetes的主要支援者)。如今,Google Kubernetes Engine是一種靈活、簡單的Kubernetes發行版。由於它在Google雲平台中運行,因此不必擔心安裝它。

•Azure Kubernetes服務:微軟Azure曾經將賭注押在Docker Swarm上,但Azure Kubernetes服務(AKS)現在是Azure雲平台中的主要編排解決方案。這是只能在雲中運行的Kubernetes發行版。

•AWS Elastic Kubernetes服務:儘管AWS雲平台上的原始容器服務Elastic Container Service(ECS)具有自己的編排器,但AWS公司還提供Elastic Kubernetes Services(EKS),它是圍繞Kubernetes構建的替代方案。像Azure Kubernetes Services(AKS)一樣,Elastic Kubernetes Services(EKS)只能在雲中運行。

•Rancher:Rancher的容器平台現在基於Kubernetes。Rancher公司的Kubernetes發行版特別著重於多集群Kubernetes部署,如果用戶想跨多個雲平台部署Kubernetes或出於某些其他原因不想使用命名空間,這可能會很有用(Kubernetes功能可讓用戶劃分單個集群伺服器劃分為虛擬區域)。Rancher可以在內部部署數據中心、雲平台中甚至跨基礎設施(包括兩者)進行工作。Rancher與OpenShift相似之處在於,它將Kubernetes與其他各種工具集成在一起,但它更加靈活,因為它在確定使用哪些組件方面提供了一些選擇。

結論

Kubernetes發行版使用戶可以輕鬆利用Kubernetes,而無需再從頭開始設置Kubernetes。對於大多數使用情況,以上的Kubernetes發行版是使用Kubernetes進行安裝和運行的最實用方法。

版權聲明:本文為企業網D1Net編譯,轉載需註明出處為:企業網D1Net,如果不註明出處,企業網D1Net將保留追究其法律責任的權利。