51CTO讀者成長(zhǎng)計(jì)劃社群招募,咨詢小助手(微信號(hào):CTOjishuzhan)
作者 | Dev Nag
策劃 | 言征
Kubernetes(K8s)非?;穑蝗嗽嵅∽疃嗟倪€是其復(fù)雜性,并且不管是在云中還是本地,都沒(méi)有很好的集群故障排除的方法。因此,盡管K8s的采用率持續(xù)增長(zhǎng),但許多開(kāi)發(fā)人員和運(yùn)維團(tuán)隊(duì)對(duì)這項(xiàng)較新的技術(shù)感到吃力,為此必須學(xué)習(xí)新的術(shù)語(yǔ)、工作流程、工具等。
1、K8s難在哪里
K8s的分立部件需要廣泛的專(zhuān)業(yè)知識(shí),即使只是在設(shè)置過(guò)程中??紤]到旋轉(zhuǎn)K8集群需要了解和配置從pods到服務(wù)的多個(gè)組件,更不用說(shuō)etcd、API服務(wù)器、kubelet和kube-proxy等資源了。
然后是規(guī)劃、擴(kuò)展和網(wǎng)絡(luò)建設(shè)。一個(gè)失誤可能很快轉(zhuǎn)化為無(wú)數(shù)的可擴(kuò)展性、可靠性甚至安全性問(wèn)題。
此外,生態(tài)系統(tǒng)本身也在不斷快速增長(zhǎng)和演變。對(duì)于初學(xué)者來(lái)說(shuō),工具和附加組件可能很多,而且很難跟上。并不是每個(gè)開(kāi)發(fā)者都專(zhuān)門(mén)接受過(guò)K8s技能的培訓(xùn)。
我們不能忘記,這項(xiàng)技術(shù)有許多移動(dòng)部件和復(fù)雜的相互作用,當(dāng)發(fā)生故障時(shí),進(jìn)行故障排除可能既困難又耗時(shí)。診斷故障原因需要深入的技術(shù)知識(shí)和專(zhuān)業(yè)知識(shí),而這些知識(shí)和專(zhuān)業(yè)技能往往存在于少數(shù)經(jīng)驗(yàn)豐富的工程師的頭腦中。
讓我們深入研究,探索有助于克服明顯技能差距問(wèn)題的新的創(chuàng)新方法。
2、沒(méi)錯(cuò),ChatGPT能當(dāng)此大任
Kubernetes很難有效地學(xué)習(xí)和使用,因?yàn)闆](méi)有一刀切的方法。K8s是高度可定制的,可以根據(jù)應(yīng)用程序或基礎(chǔ)設(shè)施的具體需求以多種不同的方式進(jìn)行配置。通常很難將您從文檔(而且有很多)和培訓(xùn)中學(xué)到的東西應(yīng)用到現(xiàn)有的環(huán)境中,因?yàn)閳F(tuán)隊(duì)缺乏對(duì)其架構(gòu)的上下文理解和可見(jiàn)性。
當(dāng)前的體系結(jié)構(gòu)是什么樣子的?哪些pod綁定到特定的命名空間?節(jié)點(diǎn)的運(yùn)行狀況如何?詢問(wèn)我們環(huán)境的基本問(wèn)題需要在AWS控制臺(tái)、kubectl命令行、Terraform配置文件和監(jiān)控工具之間進(jìn)行上下文切換。
如果我們可以問(wèn)ChatGPT這些問(wèn)題呢?
讓我們看一個(gè)使用由ChatGPT提供支持的PromptOps來(lái)理解集群中所有部署的示例。PromptOps提供了一個(gè)免費(fèi)的Kubernetes咨詢工具,用戶可以通過(guò)BASH腳本、文檔參考和其他有用資源的形式提出問(wèn)題并獲得即時(shí)幫助。

通過(guò)提供來(lái)自不同來(lái)源的PromptOps基礎(chǔ)設(shè)施的碎片數(shù)據(jù),如Confluence、Notion、Terraform配置文件等,我們希望PromptOps能夠快速聚合所有信息,并幫助可視化架構(gòu)。我們沒(méi)有手動(dòng)運(yùn)行kubectl命令來(lái)檢查部署,而是在聊天中提示PromptOps來(lái)描述集群中存在的部署。
以下是PromptOps的回應(yīng):
PromptOps > I suggest running this script to answer your question.

PromptOps提供了一個(gè)要運(yùn)行的腳本,并引用了一個(gè)包含集群信息的Notion頁(yè)面。在執(zhí)行腳本時(shí),PromptOps提供集群內(nèi)部署的輸出。

PromptOps還提供了集群中所有部署的可視化圖,使學(xué)習(xí)更加容易。

PromptOps的響應(yīng)簡(jiǎn)化了Kubernetes基礎(chǔ)設(shè)施管理,使DevOps團(tuán)隊(duì)中的每個(gè)人都能跟上當(dāng)前架構(gòu)的步伐并跟上變化。
通過(guò)自動(dòng)化故障調(diào)查節(jié)省時(shí)間
讓我們看看生產(chǎn)問(wèn)題的疑難解答,看看PromptOps如何幫助確定Kubernetes中故障的根本原因。Kubernetes度量和日志提供了從集群到容器的所有級(jí)別的關(guān)鍵見(jiàn)解。它們提供有關(guān)資源利用率、pod和節(jié)點(diǎn)狀態(tài)、集群自動(dòng)縮放指標(biāo)、網(wǎng)絡(luò)錯(cuò)誤、容器運(yùn)行時(shí)間等信息。
但所有這些指標(biāo)的問(wèn)題在于,它們并沒(méi)有立即發(fā)揮作用。日志流或度量圖表無(wú)法提供必要的上下文或方向。有一些工具可以提供幫助,但它們往往會(huì)使事情變得更加復(fù)雜,需要在整個(gè)技術(shù)堆棧中提取上下文,以查看真正發(fā)生了什么,或者在出現(xiàn)問(wèn)題時(shí)誰(shuí)做了什么。在CtrlStack,我們一直在結(jié)合PromptOps來(lái)分析因果圖、Kubernetes事件、指標(biāo)和日志,以減少手動(dòng)故障排除的挑戰(zhàn)。目標(biāo)是通過(guò)使用PromptOps生成解釋原因的根本原因分析摘要,幫助DevOps團(tuán)隊(duì)快速理解Kubernetes問(wèn)題。在本例中,CtrlStack中的根本原因分析儀表板的因果圖被輸入到PromptOps中,以進(jìn)行故障排除和解決,如下所述。
下面是一個(gè)根本原因分析面板的隨意圖形示例。

有了這個(gè),我們提示PromptOps解釋這個(gè)圖。以下是PromptOps的回應(yīng):
PromptOps>以下是對(duì)圖形的解釋?zhuān)?/p>
該圖顯示了Kubernetes pod中錯(cuò)誤的根本原因。該錯(cuò)誤是由pod映像中的更改引起的,這些更改類(lèi)似于Kubernetes pod_error度量中的更改。該錯(cuò)誤也類(lèi)似于在kubernetes_ptime和kubernetes_pod_mem_usage度量中發(fā)現(xiàn)的拐點(diǎn),以及node1中的拓?fù)渥兓?/p>
該圖顯示了kubernetes_po_error更改的根本原因。有三個(gè)見(jiàn)解。首先是圖像發(fā)生了變化。第二個(gè)是在度量kubernetes_ptime和kubernetes_pod_mem_usage中發(fā)現(xiàn)了拐點(diǎn)。第三個(gè)是節(jié)點(diǎn)1的拓?fù)浣Y(jié)構(gòu)發(fā)生了變化。
PromptOps返回了正常運(yùn)行時(shí)間和內(nèi)存使用指標(biāo)之間的信息相關(guān)性,以及相關(guān)的拓?fù)渥兓?。這些見(jiàn)解包括檢查Kubernetes的更改事件、度量、資源使用情況和拓?fù)浣Y(jié)構(gòu)更改?;谶@種自動(dòng)事件調(diào)查,開(kāi)發(fā)人員和操作員應(yīng)該有足夠的上下文來(lái)快速確定解決問(wèn)題的下一步措施。
3、將ChatGPT與Change AI相結(jié)合,縮小技能差距
根據(jù)提供的例子,很明顯,ChatGPT可以提供寶貴的幫助來(lái)縮小Kubernetes的技能差距。ChatGPT為DevOps團(tuán)隊(duì)提供了快速的見(jiàn)解和清晰的解釋?zhuān)越鉀Q生產(chǎn)問(wèn)題。這使初級(jí)運(yùn)營(yíng)商和初涉Kubernetes的開(kāi)發(fā)人員能夠獨(dú)立學(xué)習(xí)技術(shù)并解決常見(jiàn)問(wèn)題。
雖然ChatGPT的響應(yīng)可以快速了解問(wèn)題,但它需要特定于Kubernetes部署的不同問(wèn)題的上下文信息。這就是Change AI的用武之地。Change AI平臺(tái)提供了因果圖,將資源容量、基礎(chǔ)設(shè)施變化、配置變化、指標(biāo)歷史圖表和事件時(shí)間表聯(lián)系起來(lái),以優(yōu)化根本原因分析的路徑。
基于ChatGPT的Kubernetes學(xué)習(xí)方法有可能顯著提高DevOps的生產(chǎn)力,同時(shí)消除認(rèn)知過(guò)載。通過(guò)將ChatGPT與Change AI相結(jié)合,團(tuán)隊(duì)可以將他們的Kubernetes技能提高一倍,并獲得更好的可觀察性。
原文鏈接:https://thenewstack.io/overcoming-the-kubernetes-skills-gap-with-chatgpt-assistance/



































