KubeShark: Kubernetes的Wireshark

Wireshark可以幫助我們抓取并分析網(wǎng)絡(luò)數(shù)據(jù)包捺弦,理解網(wǎng)絡(luò)中發(fā)生的事情烧董,那是否有工具可以幫助我們理解在K8S集群中發(fā)生的事情彤委,幫助排查集群故障裳食,Kubeshark就是這樣的工具玫恳。原文: KubeShark: Wireshark for Kubernetes

簡介

Wireshark是著名的數(shù)據(jù)包抓取辨赐、分析和故障排除工具,可以實(shí)時(shí)捕獲網(wǎng)絡(luò)流量并在微觀級(jí)別上實(shí)時(shí)分析京办,或者讀取和處理保存的數(shù)據(jù)包文件掀序。Wireshark可以解析和顯示許多協(xié)議,并有強(qiáng)大的過濾系統(tǒng)過濾感興趣的流量惭婿。https://www.wireshark.org/

TCPDump/Wireshark使我們能夠在微觀層面可視化和理解網(wǎng)絡(luò)中發(fā)生的事情不恭。想象一下,如果可以在k8s中做類似的事情财饥,如果可以看到當(dāng)前部署的工作負(fù)載换吧、獲取pod、創(chuàng)建服務(wù)帳戶以及不同的工作負(fù)載如何相互交互時(shí)究竟發(fā)生了什么钥星,那會(huì)怎么樣沾瓦。

集群的示例源代碼可視化
現(xiàn)在缺少什么?

要查看啟動(dòng)kubectl命令時(shí)究竟發(fā)生了什么,可以簡單的在kubectl命令中使用verbose標(biāo)志打颤,并設(shè)置一些詳細(xì)級(jí)別暴拄,如kubectl get pods -v=6。verbose級(jí)別從0開始到9結(jié)束编饺,0顯示的信息最少乖篷,9顯示最多的信息。這是當(dāng)前已經(jīng)存在的數(shù)據(jù)透且,但流程的清晰可視化并不存在撕蔼。

帶-v標(biāo)志的kubectl可以查看L7 API調(diào)用,但不會(huì)讓我們監(jiān)視任何網(wǎng)絡(luò)流量秽誊。而kubesshark抓取L3和L7鲸沮,實(shí)際上它可以訪問整個(gè)L2框架,可以將創(chuàng)建儀表板/視圖來可視化锅论,就像Wireshark一樣讼溺。

Kubeshark儀表板
kubeshark解決了什么問題?
  1. 監(jiān)控一切 —— 監(jiān)控Pod到Pod的網(wǎng)絡(luò)流量、API調(diào)用最易、監(jiān)控單個(gè)節(jié)點(diǎn)怒坯、服務(wù)或特定路徑,如/latest/meta-data/health等藻懒。
  2. 可視化 —— Kubeshark Viewer非常簡單剔猿,但支持強(qiáng)大的實(shí)時(shí)流量查看、過濾嬉荆、分析和問題排查功能归敬,右側(cè)窗口里的請(qǐng)求響應(yīng)詳細(xì)信息非常清晰。
  3. PCAP存儲(chǔ) —— 存儲(chǔ)PCAP以供將來分析,可以輕松將其轉(zhuǎn)儲(chǔ)到S3或其他存儲(chǔ)中汪茧,供稍后加載并可視化椅亚。
  4. 更容易調(diào)試 —— 無論是調(diào)試,還是加深對(duì)集群中各個(gè)組件之間通信的理解陆爽,都能獲得極大支持什往。
  5. 實(shí)時(shí)告警 —— 可以使用kubesshark允許基于獲取的數(shù)據(jù)為k8s構(gòu)建真正強(qiáng)大的告警系統(tǒng),例如獲取密鑰調(diào)用失敗慌闭、實(shí)例元數(shù)據(jù)調(diào)用失敗以及其他類似異常。
自己動(dòng)手

安裝Kubeshark躯舔,看看它是如何工作的驴剔,通過以下命令安裝KubeShark:

sh <(curl -Ls https://kubeshark.co/install)

要支持特定版本和架構(gòu)的,請(qǐng)從 https://github.com/kubeshark/kubeshark/releases/ 下載二進(jìn)制文件粥庄。

啟動(dòng)Kubeshark:

kubeshark tap -A

tap -A表示監(jiān)控所有命名空間丧失,指定-n表示監(jiān)控指定命名空間。

kubeshark tap -n kube-system

Kubeshark將開始監(jiān)控/獲取流量惜互,并在本地主機(jī)的端口8899上啟動(dòng)查看器布讹。

啟動(dòng)kubesshark,儀表盤暴露在8899端口上

我用KOPS部署了測試集群训堆,注意Kubeshark二進(jìn)制文件從~/.kube/config查看當(dāng)前上下文描验,并用相同的憑據(jù)和集群來創(chuàng)建其資源并開始監(jiān)控。

你可以創(chuàng)建一個(gè)本地kind集群來快速了解Kubeshark是如何工作的坑鱼。

玩一會(huì)兒

讓我們看看要監(jiān)控什么膘流,kubeshark的儀表板上有哪些功能,這些是用來測試kubesshark的過濾器樣本鲁沥。

單節(jié)點(diǎn)監(jiān)控 ——

可視化服務(wù)地圖 ——

監(jiān)控AWS實(shí)例元數(shù)據(jù)安全憑證路徑 ——

一些思考
  1. 有助于加深對(duì)集群中各個(gè)組件如何在盡可能低的級(jí)別上進(jìn)行通信和協(xié)同工作的理解呼股。
  2. 通過向流量添加適當(dāng)?shù)倪^濾器,調(diào)試/故障排除變得非常簡單画恰。
  3. 服務(wù)地圖從可視化的角度提供了一個(gè)關(guān)于集群的高層次概述彭谁。
  4. 可以擴(kuò)展數(shù)據(jù)做實(shí)時(shí)告警,包括操作和安全警報(bào)允扇。
  5. 在適當(dāng)規(guī)模上做性能基準(zhǔn)測試缠局,看看這個(gè)工具是如何擴(kuò)展,如何影響計(jì)算和存儲(chǔ)蔼两,因?yàn)榱髁炕诩阂?guī)模呈指數(shù)級(jí)增長。
  6. 老實(shí)說妙啃,將它與Sysdig falco或Cilium Tetragon進(jìn)行比較是不公平的揖赴,它捕獲和調(diào)整數(shù)據(jù)的方式更關(guān)注實(shí)時(shí)檢測方面,并考慮在與K8S API異常更相關(guān)的安全方面使用渐北。
  7. 也許這是一個(gè)應(yīng)該廣泛使用的工具赃蛛,以便更好理解底層調(diào)用呕臂,從而編寫與控制平面更相關(guān)的更好的運(yùn)行時(shí)安全策略肪跋,但對(duì)檢測任何容器異持菁龋或與容器運(yùn)行時(shí)AFAIK相關(guān)的異常沒有多大幫助。
結(jié)論

Kubeshark是個(gè)功能強(qiáng)大的工具阐虚,早期被稱為Mizu晤郑,由UP9開發(fā)造寝,作為API流量查看器诫龙,后來開源并改名為Kubeshark,以表明這是基于K8S重制的Wireshark谷异。

雖然有一些復(fù)雜的k8s運(yùn)行時(shí)安全工具歹嘹,如Sysdig Falco尺上、Cilium Tetragon,都是利用eBPF功能構(gòu)建的卑吭,文檔中提到Kubeshark也使用eBPF豆赏,但其更側(cè)重于在微觀層面提供可視化層掷邦,以更好的理解通信耙饰。Kubeshark提供的數(shù)據(jù)絕對(duì)可以用于運(yùn)行時(shí)檢測纹份。

Github鏈接: https://github.com/kubeshark/kubeshark

官網(wǎng): https://kubeshark.co


你好蔓涧,我是俞凡元暴,在Motorola做過研發(fā)兄猩,現(xiàn)在在Mavenir做技術(shù)工作枢冤,對(duì)通信淹真、網(wǎng)絡(luò)、后端架構(gòu)巍糯、云原生祟峦、DevOps宅楞、CICD、區(qū)塊鏈搓幌、AI等技術(shù)始終保持著濃厚的興趣溉愁,平時(shí)喜歡閱讀拐揭、思考堂污,相信持續(xù)學(xué)習(xí)盟猖、終身成長换棚,歡迎一起交流學(xué)習(xí)固蚤。
微信公眾號(hào):DeepNoMind

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末你弦,一起剝皮案震驚了整個(gè)濱河市禽作,隨后出現(xiàn)的幾起案子领迈,更是在濱河造成了極大的恐慌狸捅,老刑警劉巖尘喝,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件置吓,死亡現(xiàn)場離奇詭異缔赠,居然都是意外死亡戴质,警方通過查閱死者的電腦和手機(jī)踢匣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門后专,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戚哎,“玉大人嫂用,你說我怎么就攤上這事尸折∈导校” “怎么了亮航?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長重抖。 經(jīng)常有香客問我,道長局扶,這世上最難降的妖魔是什么畜埋? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任对室,我火速辦了婚禮,結(jié)果婚禮上锭亏,老公的妹妹穿的比我還像新娘慧瘤。我一直安慰自己锅减,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般浓利。 火紅的嫁衣襯著肌膚如雪贷掖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天潮改,我揣著相機(jī)與錄音,去河邊找鬼。 笑死阿蝶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的筑煮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碑宴,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了捕仔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤票顾,失蹤者是張志新(化名)和其女友劉穎豆同,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年宵晚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片维雇。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淤刃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吱型,到底是詐尸還是另有隱情逸贾,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布津滞,位于F島的核電站铝侵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏触徐。R本人自食惡果不足惜咪鲜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撞鹉。 院中可真熱鬧疟丙,春花似錦、人聲如沸鸟雏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孝鹊。三九已至炊琉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間又活,已是汗流浹背苔咪。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工锰悼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悼泌。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓松捉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親馆里。 傳聞我的和親對(duì)象是個(gè)殘疾皇子隘世,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容