天天看點

在采用K8S之前您必須了解的5件事情

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

作者簡介 | Christopher Tozzi,自2008年來以自由職業者的身份對Linux、虛拟化、容器、資料存儲及其相關主題進行報道。

時至今日,Kubernetes已然成為風靡一時的容器編排排程工具,許多IT分析師均提出了企業應當在何時采用Kubernetes的深刻建議。然而,和所有其他的軟體平台一樣,Kubernetes并非是一個适用于所有人的靈丹妙藥。我更傾向于認為人們在有些時候過分誇大了Kubernetes的作用,以至于他們産生了一種錯覺:他們無法離開Kubernetes,而實際上,Kubernetes比他們真正的需求要複雜得多。

在采用K8S之前您必須了解的5件事情

為了分析人們真正的需求與Kubernetes的比對程度,我分析了企業在采用Kubernetes編排之前必須考慮的5個事情。

Kubernetes是什麼?

如果您關注容器,您可能會知道Kubernetes是一個用于容器編排的開源工具,它可以自動執行諸如啟動容器、停止容器以及在同一個容器的不同執行個體之間的負載均衡等重要任務。

簡而言之,Kubernetes的主要目的是最大限度地減少工程師必須手動執行的管理工作量,并通過簡化容器操作,幫助企業大規模運作複雜的容器化應用程式。

決定是否采用Kubernetes的關鍵要素

基于Kubernetes的設立初衷,如果您喜歡自動化,讨厭手動執行重複性的任務,那麼Kubernetes無疑是您的極佳選擇。

這是您決定是否采用Kubernetes的重要前提,但是,您不能僅根據這一“前提”就決定是否采用Kubernetes。在采用Kubernetes之前,您還需要考慮并權衡其他重要的因素。

1、Kubernetes的基礎設施規模

您的基礎設施規模是其中一個決定Kubernetes是否能夠很好地為您所用的關鍵要素。

Kubernetes的設計初衷是協調分布在真正龐大的環境中的容器,這往往意味着企業應當擁有數十台主機伺服器。根據過往的實施經驗,如果基礎架構中的伺服器少于50個,那麼您可能沒有足夠的資源來利用Kubernetes的全部優勢。

這并不是指Kubernetes無法在較小規模的基礎設施上運作。實際上,如果您願意,您可以在單個主機上運作Kubernetes。然而,由于Kubernetes其中的一個研發目的是:通過在數量龐大的叢集中分布容器化應用程式提供高可用性,是以,如果您隻有少量伺服器,則無法享受到Kubernetes的某些價值。

除此之外,考慮到設定和維護Kubernetes的複雜性,如果您的基礎設施規模較小,無法完全實作Kubernetes的高可用性承諾,那麼或許您不應投入過多時間和精力在Kubernetes上。

對于較小的基礎架構,您可以使用較為簡單的容器編排工具,或者使用如AWS ECS等具有内置編排的基于雲的容器服務。

2、Kubernetes作業系統環境

Kubernetes主要是一種Linux技術。盡管Kubernetes可以用于管理托管Windows伺服器上的容器化應用程式,這些應用程式作為Kubernetes伺服器叢集内的所謂工作節點運作。但托管Kubernetes核心服務的主要伺服器或者說主節點必須是Linux。

是以,如果您的商店以Windows為中心,那麼Kubernetes并非您的最佳選擇。但是您可以選擇Rancher輕松将Kubernetes的優勢引入Windows,并且極大程度降低使用的複雜性。

3、安裝和設定Kubernetes

在決定采用Kubernetes之前,您還需要評估您可以在此項目上投入的工作時間。

普通的開放源代碼版本的Kubernetes缺少内置的應用程式,也并未提供一種可以适用于所有預設配置的安裝方式。在叢集正常運作之前,您需要投入大量的時間從頭開始編寫及調整配置檔案。是以,安裝和配置Kubernetes的過程或許是一個令人生畏的過程,您需要投入大量的時間和精力。

部分Kubernetes發行版提供了互動式安裝程式腳本,可以幫助您自動執行大部分設定過程。如果您選擇Rancher等Kubernetes發行版,則有望在一兩天内輕松完成配置及安裝。

第三種選擇是使用諸如Google Kubernetes Engine等雲供應商解決方案,将Kubernetes作為托管服務在雲上運作。在這種情況下,您可以自行選擇安裝及設定。但值得注意的一點是,在确定如何配置Kubernetes環境時,您的選擇可能會受到限制。

您必須意識到最為關鍵的一點:不要低估配置Kubernetes的難度。在您真的要全身心投入Kubernetes之前,請確定您所付出的努力是值得的。另一方面,如果您無法确定為企業在生産叢集上安裝和部署Kubernetes的難度,您可以嘗試使用K3s等輕量級Kubernetes發行版來進行測試,預估後續需要付出多少努力來進行Kubernetes的配置和設定。

4、Kubernetes和聲明式配置管理

Kubernetes采用了所謂的聲明式配置管理方法,這就意味着,您需要自行編寫配置檔案來設定Kubernetes應用程式應當如何運作,而Kubernetes将自動指出如何使應用程式符合規範。

聲明式配置管理與指令式配置管理相反,在指令式配置管理中,您可以自行配置應用程式的每個元件,并讓其按照您所想要的方式運作。

聲明式配置是Kubernetes在許多使用者執行個體中如此強大和可伸縮的其中一個原因。您可以設定一次配置,并且根據需要多次應用它。

但是,如果您的配置需求不斷變化,或者在工作負載或環境中的不同部分之間變化,那麼您應當如何處理呢?在這種情況下,聲明式配置管理将成為一個障礙,您将發現自己需要不斷地調整先前認為是“一勞永逸”的配置檔案。

是以,在您選擇采用Kubernetes之前,您需要考慮應用程式的配置需求。隻有當您所需要的配置相對通用且靜态時,Kubernetes才是一個不錯的選項。

5、Kubernetes和多雲

Rancher等部分Kubernetes發行版的主要功能之一,是單個Kubernetes部署可以編排多個叢集,無論叢集位于在不同的公有雲還是私有雲上。這一功能使Kubernetes成為協助控制多雲架構複雜性的優秀工具。

在跨多雲部署容器化應用程式,并且Kubernetes的設定和配置工作很合理時,多雲上的Kubernetes是十分有意義的。

在這一因素中,您需要留意的是,在考慮是否以及何時采用Kubernetes時,應考慮您目前的多雲戰略以及多雲擴充計劃。

結 語

Kubernetes是一個非常棒的工具,在正确設定的情況下,它可以産生巨大的價值。但是,它并沒有達到殺手級應用程式的狀态,因為它無法在所有使用者執行個體中傳遞價值。在您被巨大的宣傳攻勢攻陷,并确定您無法離開Kubernetes之前,請清醒地對自己的需求進行評估,明确Kubernetes是否能在真正意義上幫助您更加有效、更加可靠地運作應用程式。

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/live

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-06-24

本文作者:hristopher Tozz

本文來自:“

dockone

”,了解相關資訊可以關注“dockone”

繼續閱讀