溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

不使用Kubernetes發(fā)行版的5個(gè)理由分別是什么

發(fā)布時(shí)間:2021-10-12 11:25:54 來源:億速云 閱讀:149 作者:柒染 欄目:云計(jì)算

不使用Kubernetes發(fā)行版的5個(gè)理由分別是什么,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

目前有不少公司基于 Kubernetes 封裝了自己的商用 Kubernetes 發(fā)行版,豐富了開發(fā)生態(tài),也提供給開發(fā)者更多選擇。

最近有人提出,選擇發(fā)行版總體上需要更少的精力和專業(yè)知識,但因?yàn)榉N種理由,組織機(jī)構(gòu)其實(shí)應(yīng)該考慮使用原生 Kubernetes。

為了幫助大家理解,先介紹一下文中的一個(gè)名詞“Vanilla Kubernetes”,Vanilla Kubernetes 指純凈、原生的 Kubernetes,一般還有 Vanilla JavaScript / Vanilla Linux 等用法,指原生 JavaScript 或 Linux,而不是它們的方言版或發(fā)行版本。

Kubernetes 發(fā)行版可能無法像組織機(jī)構(gòu)認(rèn)為的那樣,可以為他們節(jié)省時(shí)間和金錢。

部署 Kubernetes 有兩種主要方法。一種是在數(shù)十種軟件公司開發(fā)的 Kubernetes 發(fā)行版中選一個(gè);另一種是通過 Kubernetes 官方源代碼,自行安裝 Vanilla Kubernetes,即原生 Kubernetes。

傳統(tǒng)觀點(diǎn)認(rèn)為,很多時(shí)候,使用原生 Kubernetes 不是個(gè)好主意。大多數(shù)人會說,除非你是 Kubernertse 的開發(fā)人員、并想使用核心代碼,否則最好使用發(fā)行版,發(fā)行版提供完整的安裝和部署服務(wù)。這在過去可能是個(gè)很好的建議,但現(xiàn)在我們有了更充分的理由使用原生 Kubernetes,而不是發(fā)行版。

什么是原生 Kubernetes?

原生 Kubernetes 指的是 Kubernetes 的原生未修改版本,提供源代碼下載。

之所以稱為原生版,是因?yàn)樵谲浖缬幸粋€(gè)長達(dá)幾十年的傳統(tǒng),即打上“Vanilla”原生標(biāo)簽的軟件被部署到任何應(yīng)用程序或平臺上時(shí),表示這是沒有修改過的官方版本。類似于,我們還會聽到“原生 Linux” ,這是指使用純粹的、官方的 Linux 內(nèi)核源代碼構(gòu)建 Linux 內(nèi)核,而不像在 Linux 發(fā)行版本中,會修改 Linux 內(nèi)核程序。

與原生 Kubernetes 相對的是 Kubernetes 發(fā)行版,例如 Rancher,Red Hat OpenShift;或基于云的 Kubernetes 服務(wù),例如 Amazon EKS。這些發(fā)行版采用了核心的開源 Kubernets 代碼,并將其集成到更廣泛的平臺中,而這些平臺通常包含不屬于 Kubernetes 本身的管理、監(jiān)視和安全工具。這些平臺中的很多還提供安裝程序,簡化 Kubernetes 安裝程序。

當(dāng) Kubernetes 發(fā)行版沒有意義時(shí)

Kubernetes 發(fā)行版肯定是有優(yōu)勢的,這里只是想推翻一個(gè)傳統(tǒng)觀點(diǎn):在95%的使用場景中,發(fā)行版 Kubernetes 比原生 Kubernetes 更合適。

下面是5個(gè)原生版比發(fā)行版更適合的原因:

1. Kubernetes 不是 Linux,復(fù)雜程度相對較低

對于初學(xué)者來說,許多關(guān)于原生 Kubernetes 的爭議是:它是一個(gè)復(fù)雜平臺,從頭開始安裝和構(gòu)建太難了。

實(shí)際上,Linux 比 Kubernetes 復(fù)雜得多。要從頭構(gòu)建一個(gè)可用的,基于 Linux 的操作系統(tǒng),必須構(gòu)建和安裝數(shù)十個(gè),甚至數(shù)百個(gè)單個(gè)組件。

而 Kubernetes 包含大約十二個(gè)組件,其中有一些是可選的,你可以在每天的空閑時(shí)間,一天安裝一次。但對于 Linux 發(fā)行版中的所有實(shí)用程序和應(yīng)用程序,情況并非如此。

還有選擇 Linux 發(fā)行版的部分原因是,發(fā)行版通過軟件包管理器,更容易使軟件保持最新狀態(tài)。同樣,Kubernetes 發(fā)行版相較原生版,一個(gè)優(yōu)勢也是更新更輕松,但因?yàn)?Kubernetes 中需要更新的組件少了很多,這個(gè)優(yōu)勢就沒那么明顯了。

2. Kubernetes 發(fā)行版會鎖定生態(tài)系統(tǒng)

如果使用 Kubernetes 發(fā)行版,會陷入該發(fā)行版周圍的生態(tài)系統(tǒng)中。

雖然有時(shí)候使用 Kubernetes 發(fā)行版也可以在部署過程中使用第三方開源軟件,而且大多數(shù) Kubernetes 發(fā)行版的部分組件本身也是開源的。

但是,大多數(shù)情況下,發(fā)行版比原生版更容易導(dǎo)致對某些核心工具或是依賴項(xiàng)的依賴。例如,如果使用 OpenShift,則會受到各種組件的束縛。如果你運(yùn)行基于 AWS EK 或 Azure AKS 的基于云的 Kubernetes 發(fā)行版,那么你將陷入該云提供商的生態(tài)系統(tǒng)之內(nèi)。

如果安裝了原生 Kubernetes,則將有更多自由選擇要構(gòu)建部署所需組件。

3. 使用 Kubernetes 發(fā)行版是有代價(jià)的

成本因素也值得考慮。大多數(shù) Kubernetes 發(fā)行版都是由商業(yè)公司開發(fā)的,要花錢才能大規(guī)模運(yùn)行,雖然有些確實(shí)會為小型的部署提供免費(fèi)套餐。

當(dāng)然,原生 Kubernetes 也要付出一定的金錢成本。源代碼可能是免費(fèi)的,但是你的工程師需要花時(shí)間去管理維護(hù)。長期以來,這種說法一直被當(dāng)成是使用發(fā)行版 Kubernetes 的理由。

但是,當(dāng)談到 Kubernetes 時(shí),我不確定,原生 Kubernetes 的人力維護(hù)成本,是否一定高于發(fā)行版的人力成本。因?yàn)闊o論如何部署,即便是使用發(fā)行版,你也需要向工程師支付大量資金來維護(hù)和監(jiān)視部署效果。

另外,鑒于上文提到的,Kubernetes 大約只有十二個(gè)組件,因此安裝和設(shè)置并不會浪費(fèi)團(tuán)隊(duì)太多時(shí)間。從這個(gè)意義上說,簡化安裝過程的發(fā)行版,并不會降低多少成本。

4. Kubernetes 發(fā)行版可能會死亡

Kubernetes 仍然是一個(gè)非常年輕的平臺。當(dāng)今可用的大多數(shù)主流 Kubernetes 發(fā)行版僅存在了幾年,一些發(fā)行版,如 OpenShift 最初甚至不是圍繞 Kubernetes 所構(gòu)建的平臺。

一些 Kubernetes  發(fā)行版,如 Kontena Pharos 已經(jīng)失敗了。諸如 Kublr 和 Rancher 之類的其他幾家公司則由成立5-10年的創(chuàng)業(yè)公司維護(hù)。甚至大型企業(yè),如 IBM 的發(fā)行版(指 Red Hat OpenShift)或 AWS 的發(fā)行版也可能在不知不覺中被殺死。

可以肯定地說,開源 Kubernetes 項(xiàng)目將持續(xù)很長時(shí)間,而使用發(fā)型版則大概率會面臨該版本消失,或被迫遷移到新發(fā)行版的風(fēng)險(xiǎn)。

5. 原生 Kubernetes 變得更容易安裝和維護(hù)

最后,Kubernetes 已經(jīng)走了很長一段路,用戶友好度也在提升。

像大多數(shù)開源項(xiàng)目一樣,Kubernetes 在初期非常粗糙,它犯過一長串的錯(cuò)誤,沒有完全文檔化、集成常常只完成了一半的工作。因此,許多團(tuán)隊(duì)選擇發(fā)行版來規(guī)避問題。

但是今天,這些錯(cuò)誤都已或多或少被修復(fù)了,Kubernetes 的文檔在組織、導(dǎo)航和清晰度方面堪稱典范。

可以肯定的是,有許多理由支撐組織機(jī)構(gòu)選擇發(fā)行版,發(fā)行版總體上需要更少的精力和專業(yè)知識。但發(fā)行版也有不足,如需要更高的成本、更少的靈活性、以及長期可用性的保證。

在開始安裝 Kubernetes 發(fā)行版之前,請記住,Kubernetes 不是 Linux,記得考慮給原生 Kubernetes 一個(gè)機(jī)會。

看完上述內(nèi)容,你們掌握不使用Kubernetes發(fā)行版的5個(gè)理由分別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI