新聞中心
當前位置:網(wǎng)站首頁 > 新聞中心
管理Kubernetes應(yīng)該了解的7件事
當企業(yè)團隊將Kubernetes視為一種不可思議的自動化技術(shù)而不是必須維護和改進的工具時,可能會遇到一些問題。企業(yè)在管理Kubernetes方面應(yīng)該考慮行業(yè)專家的建議。
容器存儲廠商Portworx公司首席技術(shù)官兼聯(lián)合創(chuàng)始人Gou Rao說,“越來越多的團隊開始在生產(chǎn)中使用Kubernetes來運行其容器化工作負載和應(yīng)用程序。當零停機時間和安全性至關(guān)重要時,Kubernetes迅速成為在生產(chǎn)中運行大規(guī)模復(fù)雜應(yīng)用程序的最簡單方法。Kubernetes很復(fù)雜,以至于并不適合所有人,但是對于需要跨多個云平臺和數(shù)據(jù)中心運行的具有高度規(guī)模和復(fù)雜性的應(yīng)用程序,Kubernetes并非遙不可及。”
但Kubernetes并不是一個一成不變的工具,無論其具有多么強大的自動化能力。很多企業(yè)正在實施的管理任務(wù)值得關(guān)注。
Harness公司DevOps技術(shù)傳播者Ravi Lachhman說,“與任何平臺一樣,Kubernetes也需要管理和維護?!?
與此同時,Red Hat公司安全策略師Kirsten Newcomer說,“安全性應(yīng)該盡早將其納入企業(yè)的流程中。新技術(shù)可以挑戰(zhàn)現(xiàn)有的安全方法。例如,數(shù)據(jù)收集和網(wǎng)絡(luò)安全解決方案需要適應(yīng)應(yīng)用程序運行的環(huán)境。最佳實踐是永遠不要修補正在運行的容器。如果這樣做,則下次從映像部署該容器實例時,這個修補程序?qū)G失。這意味著企業(yè)需要重新評估其對DevOps的投資以及加強安全性。”長期管理Kubernetes的7個技巧
行業(yè)專家可以為企業(yè)團隊和從業(yè)人員提供有關(guān)管理Kubernetes的7個建議:
1.企業(yè)必須將Kubernetes視為一項重大投資
企業(yè)在筆記本電腦或沙箱環(huán)境中修改Kubernetes是一回事(許多團隊都是從這種方式開始的,而Minikube和類似的工具使這種方式相對簡單),而在生產(chǎn)環(huán)境中運行是另一種回事。
Rao說,“正確地采用Kubernetes要求企業(yè)認真對待它。確實,所有技巧實質(zhì)上都源于此?!彼J為,這是一個功能強大的軟件引擎,因此需要認真對待它。
Rao說,“這個引擎希望能夠根據(jù)企業(yè)提供的參數(shù),隨時隨地運行、移動和重新移動應(yīng)用程序。企業(yè)需要采用Kubernetes做什么,如何實現(xiàn)。如果要從這種運營效率中受益,則需要為其提供有效運行的環(huán)境。”
這意味著企業(yè)需要擁有合適的人員、基礎(chǔ)設(shè)施、流程和文化。很多企業(yè)希望Kubernetes能夠解決現(xiàn)有的結(jié)構(gòu)問題,這些問題會使其環(huán)境管理變得混亂。
2.即使協(xié)調(diào)者也需要管理和維護
一些團隊(尤其是剛起步的團隊)可能認為Kubernetes會自己運行??紤]到協(xié)調(diào)者的聲明性和對自動化的重視,這個實際上具有一種偽基準。但是Kubernetes像其他系統(tǒng)一樣需要一些管理和維護。
Lachhman說:“每個企業(yè)都是不同的,并且初次掌握新的知識和經(jīng)驗將對其組織產(chǎn)生長期的影響?!?
Lachhman指出了常見維護和管理任務(wù)的示例,例如:
?修補或升級集群及其基礎(chǔ)設(shè)施;
?添加和減去工作節(jié)點;
?插入新功能,例如Istio和Traefik等服務(wù)網(wǎng)格工具;
?建立明確定義的命名空間分類法,尤其是隨著越來越多的團隊開始使用Kubernetes。
為什么名稱空間很重要?它們有助于保護多個用戶之間對容器中資源的訪問。
3. Kubernetes需要適當?shù)幕A(chǔ)設(shè)施才能成功
長期成功管理Kubernetes的基本需求之一是采用適當?shù)幕A(chǔ)設(shè)施,例如混合云和多云環(huán)境。
Rao說,“我看到團隊犯下的錯誤正在轉(zhuǎn)向Kubernetes,因為他們想要敏捷性,但隨后又影響了Kubernetes提供推動其最初決策的運營成果的能力。這種做法有些自欺欺人。任何系統(tǒng)都只有其最小敏捷性元素才具有敏捷性,因此,如果在靜態(tài)數(shù)據(jù)中心環(huán)境中運行Kubernetes,而該環(huán)境中存儲的硬件和軟件為不那么敏捷的虛擬機環(huán)境提供了相同的硬件和軟件,如果企業(yè)沒有認真對待Kubernetes,那么不會獲得所追求的好處?!?
Zettaset公司工程副總裁Maksim Yankovskiy表示,存儲是基礎(chǔ)設(shè)施的一個特定子集,可能需要進行規(guī)劃。例如,有狀態(tài)容器帶有特殊的存儲注意事項。
Yankovskiy說,“為工作負載規(guī)劃存儲至關(guān)重要。某些工作負載可能需要專門的存儲或按應(yīng)用程序調(diào)整存儲參數(shù)。并非所有存儲都應(yīng)該由Kubernetes管理?!?
Rao還以存儲為例,這是團隊在采用Kubernetes時可能會忽略的特定領(lǐng)域的示例,該過程旨在變得更加敏捷,而這將會在管理方面引起麻煩。
Rao說,“與許多與在Kubernetes上運行數(shù)據(jù)服務(wù)的客戶合作,而我一直聽到的一句話是‘我曾嘗試在Kubernetes上運行MongoDB,但SAN一直存在問題。’可以采用SAN,但是它們并不是為Kubernetes的規(guī)模、密度和動態(tài)性而設(shè)計的。為了充分利用Kubernetes,企業(yè)需要為其提供有效運行所需的基礎(chǔ)設(shè)施。如果只為其提供靜態(tài)基礎(chǔ)設(shè)施,它將無法發(fā)揮其作用?!?
4. Kubernetes的可靠性會讓企業(yè)過分自信
正如Rao一開始指出的那樣,Kubernetes的自我修復(fù)和可靠性功能是其具有吸引力的重要組成部分,只是不要以它們?yōu)榻杩诙雎云溥\行狀況。例如,仍然需要確保有適當?shù)谋O(jiān)視。
Yankovskiy說:“不要依靠Kubernetes的可靠性功能來解決錯誤的服務(wù)。僅僅因為Kubernetes出色地完成了自動重啟失敗的Pod的工作,并不意味著不應(yīng)該監(jiān)視應(yīng)用程序的運行時錯誤?!?
隨著企業(yè)的發(fā)展和成長,日志記錄是另一個重要的管理需求。
Yankovskiy說:“Kubernetes集群是高度分布式的,因此,部署Kubernetes集群的第一步應(yīng)包括計劃集中式日志記錄設(shè)施。在監(jiān)視性能或診斷問題時訪問單個節(jié)點上的日志是不可擴展的。出色的日志管理系統(tǒng)是強大的Kubernetes管理的基礎(chǔ)之一。”
Red Hat公司技術(shù)傳道者Gordon Haff補充說:“部署到Kubernetes的云原生應(yīng)用程序基本上是分布式應(yīng)用程序,IT商店習(xí)慣于運行整體程序的架構(gòu)可能沒有很多經(jīng)驗。Kubernetes軌道上的開源項目生態(tài)系統(tǒng)包括監(jiān)視、日志記錄、分布式跟蹤等。但是企業(yè)可能想要一個已經(jīng)將該工具與Kubernetes集成在一起的平臺,而不是著手進行大型的DIY項目。企業(yè)的員工也可能會從新的云原生應(yīng)用程序開發(fā)實踐培訓(xùn)中受益?!?
總的來說,當團隊將Kubernetes視為一種靈丹妙藥,而不是像其他任何重要系統(tǒng)一樣必須維護和改進的工具時,團隊往往會遇到問題。
Lachhman說:“企業(yè)可能會有多位管理員和一個定期更改的拓撲結(jié)構(gòu),并且在使用Kubernetes時不受網(wǎng)絡(luò)延遲的影響?!?
5.實驗和無聊之間需要定期調(diào)整
Lachhman指出,使用Kubernetes本身已不再具有實驗性的資格。該項目開展了將近5年,如今已成為一個穩(wěn)定可靠的平臺。也就是說,生態(tài)系統(tǒng)正在不斷發(fā)展:考慮諸如運算符、集群API、GitOps和上述服務(wù)網(wǎng)格工具之類的事情。 Lachhman說,Kubernetes團隊將需要決定如何在創(chuàng)新和控制之間進行切換,這是企業(yè)管理層的考慮。
一方面,大多數(shù)團隊可能會因為在“無聊”方面犯錯誤,特別是在采用的早期階段。
Lachhman說:“通過保持簡單的方法,需要了解不在CNCF中的最新測試版或特殊興趣小組(SIG)上對企業(yè)的Kubernetes工作負載沒有損害。另一方面,企業(yè)不想錯過可能解決實際問題的新功能。因此,企業(yè)必須確定適合自己的方法,在Kubernetes內(nèi)部權(quán)衡更多經(jīng)過實踐檢驗的方法與新方法的選擇?!?
6.剛性開發(fā)在容器和編排中不能很好地發(fā)揮作用
現(xiàn)代IT工具最適合現(xiàn)代IT慣例和文化。這既可能是人員管理問題,也可能是技術(shù)管理問題。
Zettaset公司的Yankovskiy說:“ Kubernetes就是關(guān)于快速開發(fā)和部署的。一些組織可能需要過渡到DevOps模式,以實現(xiàn)Kubernetes的全部利益?!?
這一原則也適用于應(yīng)用程序本身。并不是所有的東西都適合容器和編排,“提升和轉(zhuǎn)移”并不總是將傳統(tǒng)應(yīng)用程序遷移到容器并與Kubernetes一起運行的最佳策略。事實上,更好的選擇可能是根本不遷移這個應(yīng)用程序。
Yankovskiy說,“并不是所有事情都必須在Kubernetes上運行,Kubernetes是工作的工具。它對很多事情都有好處,但是隨著許多傳統(tǒng)應(yīng)用程序遷移到容器中,重要的是要了解并非所有內(nèi)容都必須在容器中運行?!?
7.量力而行
企業(yè)善于學(xué)習(xí)是一件好事,但了解自己的局限性也是件好事。否則,長期管理Kubernetes可能會面臨一些問題,因此需要知道何時尋求外部幫助。
Lachhman建議說:“企業(yè)避免尋求獲得更多的技能,并且知道何時將復(fù)雜性轉(zhuǎn)移出去。而從頭開始構(gòu)建自己的集群,并在每次部署時運行一致性測試,這似乎是一個黃金標準,但對于大多數(shù)工作負載來說,將這種復(fù)雜性交給PaaS或Kubernetes供應(yīng)商并不是一個壞主意?!?
上一篇 云遷移的主要注意事項 下一篇 冠狀病毒疫情期間和之后的云成本優(yōu)化
|