管理Kubernetes應(yīng)該了解的7件事

當(dāng)企業(yè)團(tuán)隊(duì)將Kubernetes視為一種不可思議的自動(dòng)化技術(shù)而不是必須維護(hù)和改進(jìn)的工具時(shí),可能會(huì)遇到一些問(wèn)題。企業(yè)在管理Kubernetes方面應(yīng)該考慮行業(yè)專家的建議。

當(dāng)企業(yè)團(tuán)隊(duì)將Kubernetes視為一種不可思議的自動(dòng)化技術(shù)而不是必須維護(hù)和改進(jìn)的工具時(shí),可能會(huì)遇到一些問(wèn)題。企業(yè)在管理Kubernetes方面應(yīng)該考慮行業(yè)專家的建議。

容器存儲(chǔ)廠商Portworx公司首席技術(shù)官兼聯(lián)合創(chuàng)始人Gou Rao說(shuō),“越來(lái)越多的團(tuán)隊(duì)開(kāi)始在生產(chǎn)中使用Kubernetes來(lái)運(yùn)行其容器化工作負(fù)載和應(yīng)用程序。當(dāng)零停機(jī)時(shí)間和安全性至關(guān)重要時(shí),Kubernetes迅速成為在生產(chǎn)中運(yùn)行大規(guī)模復(fù)雜應(yīng)用程序的最簡(jiǎn)單方法。Kubernetes很復(fù)雜,以至于并不適合所有人,但是對(duì)于需要跨多個(gè)云平臺(tái)和數(shù)據(jù)中心運(yùn)行的具有高度規(guī)模和復(fù)雜性的應(yīng)用程序,Kubernetes并非遙不可及。”

但Kubernetes并不是一個(gè)一成不變的工具,無(wú)論其具有多么強(qiáng)大的自動(dòng)化能力。很多企業(yè)正在實(shí)施的管理任務(wù)值得關(guān)注。

Harness公司DevOps技術(shù)傳播者Ravi Lachhman說(shuō),“與任何平臺(tái)一樣,Kubernetes也需要管理和維護(hù)。”

與此同時(shí),Red Hat公司安全策略師Kirsten Newcomer說(shuō),“安全性應(yīng)該盡早將其納入企業(yè)的流程中。新技術(shù)可以挑戰(zhàn)現(xiàn)有的安全方法。例如,數(shù)據(jù)收集和網(wǎng)絡(luò)安全解決方案需要適應(yīng)應(yīng)用程序運(yùn)行的環(huán)境。最佳實(shí)踐是永遠(yuǎn)不要修補(bǔ)正在運(yùn)行的容器。如果這樣做,則下次從映像部署該容器實(shí)例時(shí),這個(gè)修補(bǔ)程序?qū)?huì)丟失。這意味著企業(yè)需要重新評(píng)估其對(duì)DevOps的投資以及加強(qiáng)安全性。”

長(zhǎng)期管理Kubernetes的7個(gè)技巧

行業(yè)專家可以為企業(yè)團(tuán)隊(duì)和從業(yè)人員提供有關(guān)管理Kubernetes的7個(gè)建議:

1.企業(yè)必須將Kubernetes視為一項(xiàng)重大投資

企業(yè)在筆記本電腦或沙箱環(huán)境中修改Kubernetes是一回事(許多團(tuán)隊(duì)都是從這種方式開(kāi)始的,而Minikube和類似的工具使這種方式相對(duì)簡(jiǎn)單),而在生產(chǎn)環(huán)境中運(yùn)行是另一種回事。

Rao說(shuō),“正確地采用Kubernetes要求企業(yè)認(rèn)真對(duì)待它。確實(shí),所有技巧實(shí)質(zhì)上都源于此。”他認(rèn)為,這是一個(gè)功能強(qiáng)大的軟件引擎,因此需要認(rèn)真對(duì)待它。

Rao說(shuō),“這個(gè)引擎希望能夠根據(jù)企業(yè)提供的參數(shù),隨時(shí)隨地運(yùn)行、移動(dòng)和重新移動(dòng)應(yīng)用程序。企業(yè)需要采用Kubernetes做什么,如何實(shí)現(xiàn)。如果要從這種運(yùn)營(yíng)效率中受益,則需要為其提供有效運(yùn)行的環(huán)境。”

這意味著企業(yè)需要擁有合適的人員、基礎(chǔ)設(shè)施、流程和文化。很多企業(yè)希望Kubernetes能夠解決現(xiàn)有的結(jié)構(gòu)問(wèn)題,這些問(wèn)題會(huì)使其環(huán)境管理變得混亂。

2.即使協(xié)調(diào)者也需要管理和維護(hù)

一些團(tuán)隊(duì)(尤其是剛起步的團(tuán)隊(duì))可能認(rèn)為Kubernetes會(huì)自己運(yùn)行。考慮到協(xié)調(diào)者的聲明性和對(duì)自動(dòng)化的重視,這個(gè)實(shí)際上具有一種偽基準(zhǔn)。但是Kubernetes像其他系統(tǒng)一樣需要一些管理和維護(hù)。

Lachhman說(shuō):“每個(gè)企業(yè)都是不同的,并且初次掌握新的知識(shí)和經(jīng)驗(yàn)將對(duì)其組織產(chǎn)生長(zhǎng)期的影響。”

Lachhman指出了常見(jiàn)維護(hù)和管理任務(wù)的示例,例如:

修補(bǔ)或升級(jí)集群及其基礎(chǔ)設(shè)施;

添加和減去工作節(jié)點(diǎn);

插入新功能,例如Istio和Traefik等服務(wù)網(wǎng)格工具;

建立明確定義的命名空間分類法,尤其是隨著越來(lái)越多的團(tuán)隊(duì)開(kāi)始使用Kubernetes。

為什么名稱空間很重要?它們有助于保護(hù)多個(gè)用戶之間對(duì)容器中資源的訪問(wèn)。

3. Kubernetes需要適當(dāng)?shù)幕A(chǔ)設(shè)施才能成功

長(zhǎng)期成功管理Kubernetes的基本需求之一是采用適當(dāng)?shù)幕A(chǔ)設(shè)施,例如混合云和多云環(huán)境。

Rao說(shuō),“我看到團(tuán)隊(duì)犯下的錯(cuò)誤正在轉(zhuǎn)向Kubernetes,因?yàn)樗麄兿胍艚菪?,但隨后又影響了Kubernetes提供推動(dòng)其最初決策的運(yùn)營(yíng)成果的能力。這種做法有些自欺欺人。任何系統(tǒng)都只有其最小敏捷性元素才具有敏捷性,因此,如果在靜態(tài)數(shù)據(jù)中心環(huán)境中運(yùn)行Kubernetes,而該環(huán)境中存儲(chǔ)的硬件和軟件為不那么敏捷的虛擬機(jī)環(huán)境提供了相同的硬件和軟件,如果企業(yè)沒(méi)有認(rèn)真對(duì)待Kubernetes,那么不會(huì)獲得所追求的好處。”

Zettaset公司工程副總裁Maksim Yankovskiy表示,存儲(chǔ)是基礎(chǔ)設(shè)施的一個(gè)特定子集,可能需要進(jìn)行規(guī)劃。例如,有狀態(tài)容器帶有特殊的存儲(chǔ)注意事項(xiàng)。

Yankovskiy說(shuō),“為工作負(fù)載規(guī)劃存儲(chǔ)至關(guān)重要。某些工作負(fù)載可能需要專門(mén)的存儲(chǔ)或按應(yīng)用程序調(diào)整存儲(chǔ)參數(shù)。并非所有存儲(chǔ)都應(yīng)該由Kubernetes管理。”

Rao還以存儲(chǔ)為例,這是團(tuán)隊(duì)在采用Kubernetes時(shí)可能會(huì)忽略的特定領(lǐng)域的示例,該過(guò)程旨在變得更加敏捷,而這將會(huì)在管理方面引起麻煩。

Rao說(shuō),“與許多與在Kubernetes上運(yùn)行數(shù)據(jù)服務(wù)的客戶合作,而我一直聽(tīng)到的一句話是‘我曾嘗試在Kubernetes上運(yùn)行MongoDB,但SAN一直存在問(wèn)題。’可以采用SAN,但是它們并不是為Kubernetes的規(guī)模、密度和動(dòng)態(tài)性而設(shè)計(jì)的。為了充分利用Kubernetes,企業(yè)需要為其提供有效運(yùn)行所需的基礎(chǔ)設(shè)施。如果只為其提供靜態(tài)基礎(chǔ)設(shè)施,它將無(wú)法發(fā)揮其作用。”

4. Kubernetes的可靠性會(huì)讓企業(yè)過(guò)分自信

正如Rao一開(kāi)始指出的那樣,Kubernetes的自我修復(fù)和可靠性功能是其具有吸引力的重要組成部分,只是不要以它們?yōu)榻杩诙雎云溥\(yùn)行狀況。例如,仍然需要確保有適當(dāng)?shù)谋O(jiān)視。

Yankovskiy說(shuō):“不要依靠Kubernetes的可靠性功能來(lái)解決錯(cuò)誤的服務(wù)。僅僅因?yàn)镵ubernetes出色地完成了自動(dòng)重啟失敗的Pod的工作,并不意味著不應(yīng)該監(jiān)視應(yīng)用程序的運(yùn)行時(shí)錯(cuò)誤。”

隨著企業(yè)的發(fā)展和成長(zhǎng),日志記錄是另一個(gè)重要的管理需求。

Yankovskiy說(shuō):“Kubernetes集群是高度分布式的,因此,部署Kubernetes集群的第一步應(yīng)包括計(jì)劃集中式日志記錄設(shè)施。在監(jiān)視性能或診斷問(wèn)題時(shí)訪問(wèn)單個(gè)節(jié)點(diǎn)上的日志是不可擴(kuò)展的。出色的日志管理系統(tǒng)是強(qiáng)大的Kubernetes管理的基礎(chǔ)之一。”

Red Hat公司技術(shù)傳道者Gordon Haff補(bǔ)充說(shuō):“部署到Kubernetes的云原生應(yīng)用程序基本上是分布式應(yīng)用程序,IT商店習(xí)慣于運(yùn)行整體程序的架構(gòu)可能沒(méi)有很多經(jīng)驗(yàn)。Kubernetes軌道上的開(kāi)源項(xiàng)目生態(tài)系統(tǒng)包括監(jiān)視、日志記錄、分布式跟蹤等。但是企業(yè)可能想要一個(gè)已經(jīng)將該工具與Kubernetes集成在一起的平臺(tái),而不是著手進(jìn)行大型的DIY項(xiàng)目。企業(yè)的員工也可能會(huì)從新的云原生應(yīng)用程序開(kāi)發(fā)實(shí)踐培訓(xùn)中受益。”

總的來(lái)說(shuō),當(dāng)團(tuán)隊(duì)將Kubernetes視為一種靈丹妙藥,而不是像其他任何重要系統(tǒng)一樣必須維護(hù)和改進(jìn)的工具時(shí),團(tuán)隊(duì)往往會(huì)遇到問(wèn)題。

Lachhman說(shuō):“企業(yè)可能會(huì)有多位管理員和一個(gè)定期更改的拓?fù)浣Y(jié)構(gòu),并且在使用Kubernetes時(shí)不受網(wǎng)絡(luò)延遲的影響。”

5.實(shí)驗(yàn)和無(wú)聊之間需要定期調(diào)整

Lachhman指出,使用Kubernetes本身已不再具有實(shí)驗(yàn)性的資格。該項(xiàng)目開(kāi)展了將近5年,如今已成為一個(gè)穩(wěn)定可靠的平臺(tái)。也就是說(shuō),生態(tài)系統(tǒng)正在不斷發(fā)展:考慮諸如運(yùn)算符、集群API、GitOps和上述服務(wù)網(wǎng)格工具之類的事情。 Lachhman說(shuō),Kubernetes團(tuán)隊(duì)將需要決定如何在創(chuàng)新和控制之間進(jìn)行切換,這是企業(yè)管理層的考慮。

一方面,大多數(shù)團(tuán)隊(duì)可能會(huì)因?yàn)樵?ldquo;無(wú)聊”方面犯錯(cuò)誤,特別是在采用的早期階段。

Lachhman說(shuō):“通過(guò)保持簡(jiǎn)單的方法,需要了解不在CNCF中的最新測(cè)試版或特殊興趣小組(SIG)上對(duì)企業(yè)的Kubernetes工作負(fù)載沒(méi)有損害。另一方面,企業(yè)不想錯(cuò)過(guò)可能解決實(shí)際問(wèn)題的新功能。因此,企業(yè)必須確定適合自己的方法,在Kubernetes內(nèi)部權(quán)衡更多經(jīng)過(guò)實(shí)踐檢驗(yàn)的方法與新方法的選擇。”

6.剛性開(kāi)發(fā)在容器和編排中不能很好地發(fā)揮作用

現(xiàn)代IT工具最適合現(xiàn)代IT慣例和文化。這既可能是人員管理問(wèn)題,也可能是技術(shù)管理問(wèn)題。

Zettaset公司的Yankovskiy說(shuō):“ Kubernetes就是關(guān)于快速開(kāi)發(fā)和部署的。一些組織可能需要過(guò)渡到DevOps模式,以實(shí)現(xiàn)Kubernetes的全部利益。”

這一原則也適用于應(yīng)用程序本身。并不是所有的東西都適合容器和編排,“提升和轉(zhuǎn)移”并不總是將傳統(tǒng)應(yīng)用程序遷移到容器并與Kubernetes一起運(yùn)行的最佳策略。事實(shí)上,更好的選擇可能是根本不遷移這個(gè)應(yīng)用程序。

Yankovskiy說(shuō),“并不是所有事情都必須在Kubernetes上運(yùn)行,Kubernetes是工作的工具。它對(duì)很多事情都有好處,但是隨著許多傳統(tǒng)應(yīng)用程序遷移到容器中,重要的是要了解并非所有內(nèi)容都必須在容器中運(yùn)行。”

7.量力而行

企業(yè)善于學(xué)習(xí)是一件好事,但了解自己的局限性也是件好事。否則,長(zhǎng)期管理Kubernetes可能會(huì)面臨一些問(wèn)題,因此需要知道何時(shí)尋求外部幫助。

Lachhman建議說(shuō):“企業(yè)避免尋求獲得更多的技能,并且知道何時(shí)將復(fù)雜性轉(zhuǎn)移出去。而從頭開(kāi)始構(gòu)建自己的集群,并在每次部署時(shí)運(yùn)行一致性測(cè)試,這似乎是一個(gè)黃金標(biāo)準(zhǔn),但對(duì)于大多數(shù)工作負(fù)載來(lái)說(shuō),將這種復(fù)雜性交給PaaS或Kubernetes供應(yīng)商并不是一個(gè)壞主意。”

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論