偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

KoolKits簡介:適用于Kubernetes 的OSS 調(diào)試工具包

譯文 精選
開發(fā) 開發(fā)工具
本文介紹一種直接在IDE或終端窗口內(nèi)調(diào)試實(shí)時(shí)應(yīng)用程序而無需停止該程序的新開源方法。

譯者 | 張鋒

審校| 孫淑娟 梁策

KoolKits(Kubernetes工具包)是針對Kubernetes的高度匹配、基于特定語言、一組有調(diào)試容器功能的鏡像。在實(shí)踐中,如果你在不熟悉的shell中進(jìn)行艱難的調(diào)試時(shí)卡住了,那么在生產(chǎn)的Pod上,你就會很希望用到這個(gè)工具。

在這里簡單介紹下背景,請注意這些容器鏡像旨在與新kubectl debug功能一起使用,該功能用來啟動(dòng)臨時(shí)容器以進(jìn)行交互式排障。KoolKit將作為容器被kubectl debug拉起,在你的Pod中運(yùn)行,并且能夠訪問與原始容器相同的進(jìn)程命名空間。

由于生產(chǎn)容器內(nèi)置調(diào)試工具通常是相對簡單的,使用KoolKit可以提供強(qiáng)大的工具進(jìn)行排障,而不是依賴由最初構(gòu)建生產(chǎn)鏡像的人有意(或無心)留下的簡陋工具。

每個(gè)KoolKit中的工具都是經(jīng)過精心挑選的,你可以在下面閱讀更多關(guān)于整個(gè)項(xiàng)目背后的用意。

如果您迫不及待只是想看看有用的內(nèi)容,請隨時(shí)查看??GitHub??上的完整項(xiàng)目。

調(diào)試Kubernetes很難

了解Kubernetes中pod內(nèi)部發(fā)生的事情并非易事。

首先,你的應(yīng)用不再是單一的實(shí)體。它由多個(gè)pod組成,為水平擴(kuò)展進(jìn)行復(fù)制,有時(shí)甚至分散在多個(gè)集群中。

其次,要使用本地工具(如調(diào)試器)訪問你的應(yīng)用,你需要處理令人討厭的網(wǎng)絡(luò)問題,如自動(dòng)發(fā)現(xiàn)和端口轉(zhuǎn)發(fā),這會減緩此類工具的使用速度。

此外,分布式系統(tǒng)改變或完全停止正在運(yùn)行的pod的狀態(tài)(例如,當(dāng)放置斷點(diǎn)時(shí))可能會導(dǎo)致系統(tǒng)其他部分的連鎖性故障,這將加劇現(xiàn)有問題。

KoolKits背后的用意(起因)

Lightrun[1]是在考慮Kubernetes情況下構(gòu)建的。我們工作時(shí)會跨多pod、多集群甚至多云。我們很早就明白,通過使用正確的工具能為做故障診斷的開發(fā)人員提供強(qiáng)大動(dòng)力。我想我們應(yīng)該以某種方式回饋社區(qū),這也就是我們提出KoolKits想法的原因。

讓我們花點(diǎn)時(shí)間來解釋一下為什么KoolKits非常有用:

有一個(gè)著名的Kubernetes最佳實(shí)踐指出應(yīng)該構(gòu)建小型容器鏡像。出于幾個(gè)不同的原因,這是有道理的:

  1. 構(gòu)建鏡像將消耗更少的資源(即CI小時(shí)數(shù))。
  2. 拉取鏡像將花費(fèi)更少的時(shí)間(誰愿意為這么多的Ingress付費(fèi)?)。
  3. 在一個(gè)連無操作日志都不再安全的世界里,更少的東西意味著暴露在安全漏洞下的區(qū)域越小。

這里還有很多工具可以幫助你在不用做太多繁重工作的情況下實(shí)現(xiàn)目標(biāo):

  1. Alpine Linux基礎(chǔ)鏡像非常小。
  2. DistroLess Docker 鏡像更進(jìn)一步,刪除了除運(yùn)行時(shí)之外的所有內(nèi)容。
  3. Docker多級構(gòu)建有助于創(chuàng)建精簡的最終生產(chǎn)鏡像。

當(dāng)你嘗試去調(diào)試這些容器內(nèi)發(fā)生的事情時(shí),問題很容易出現(xiàn)。通過使用小型生產(chǎn)鏡像,你放棄了大量工具,而這些工具在解決應(yīng)用程序中的問題時(shí)非常寶貴。

通過使用KoolKit,你可以在不影響質(zhì)量工具的情況下讓自己享受小型生產(chǎn)鏡像的好處。每個(gè)KoolKit都包含為它所代表的特定運(yùn)行時(shí)精心挑選的工具,此外還有一套基于Linux系統(tǒng)更通用的工具。

注:KoolKits的靈感來自kubespy和netshoot。

注意事項(xiàng)

在構(gòu)建這些鏡像的過程中,我們做出了很多決策。下面列出了我們考慮的一些事項(xiàng)。

鏡像大小

KoolKits Docker 鏡像傾向于運(yùn)行。KoolKit旨在下載一次,保存在集群的Docker倉庫中,然后根據(jù)需要以容器的方式立即啟動(dòng)。因?yàn)樗鼈儾皇菫榱顺掷m(xù)拉動(dòng)而設(shè)計(jì)的,而是為了裝有用的工具,這個(gè)副作用也是我們能忍受的。

使用Ubuntu基礎(chǔ)鏡像

很難創(chuàng)建一個(gè)精簡鏡像的部分原因是,我們決定使用完整的Ubuntu 20.04系統(tǒng)作為每個(gè)KoolKit的基礎(chǔ)。這主要是因?yàn)槲覀兿M麖?fù)制你將在集群內(nèi)做本地調(diào)試的相同環(huán)境。

比如,這意味著不要亂用Alpine替代你習(xí)慣使用的普通Ubuntu軟件包。實(shí)際上,這意味著我們可以在每個(gè)KoolKit中包含沒有Alpine版本的工具。

使用語言版本管理器

每個(gè)KoolKit都盡可能使用語言版本管理器,而不是依賴于特定語言的發(fā)行版。這樣做是為了讓你可以輕松安裝較舊的運(yùn)行時(shí)版本,如果需要的話允許你在運(yùn)行時(shí)版本之間隨意切換(例如,為了獲取僅存在于特定運(yùn)行時(shí)版本的特定工具版本)。

可用的KoolKits

存儲庫中的每個(gè)文件夾都包含KoolKit后面的Dockerfile和調(diào)試鏡像的簡短說明。所有KoolKit都基于ubuntu:20.04基礎(chǔ)鏡像,讓每個(gè)人都使用自己熟悉的shell。

可用的 KoolKit 列表:

1. ??koolkit-jvm??–采用OpenJDK 17.0.2 和相關(guān)工具(包括jabba以便于版本管理和Maven 3.8.4)

2. ??koolkit-node??–Node 16.13.1和相關(guān)工具(包括nvm以便于版本管理)

3. ??koolkit-python??–Python 3.10.2 和相關(guān)工具(包括pyenv以便于版本管理)

請注意,你實(shí)際上不必自己構(gòu)建它們:所有KoolKit都在Docker Hub上公開托管并且免費(fèi)提供。

KoolKits 即將推出

  • 一個(gè)全新的 Go 1.17.7 KoolKit
  • JVM KoolKit: jvm-profiler,jHiccup支持
  • Node.js KoolKit: llnode,thetool 支持
  • Python KoolKit: vardbg, memprof 支持

貢獻(xiàn)

如果還有遺漏的工具,請?zhí)峤粏栴}告知你的建議即可,我們非常樂意將它們添加到任何鏡像中。

附注1:Lightrun公司提供了一個(gè)可觀察性平臺,允許開發(fā)人員在運(yùn)行時(shí)插入日志、指標(biāo)和跟蹤等,并簡化事件解決的各個(gè)方面,從而讓開發(fā)人員深入了解正在運(yùn)行的應(yīng)用程序。

譯者介紹

張鋒,51 CTO社區(qū)編輯,長期從事技術(shù)顧問工作,專注于運(yùn)維/云原生領(lǐng)域,精通網(wǎng)絡(luò)疑難故障分析,有很豐富的大型銀行運(yùn)維工具建設(shè)實(shí)踐經(jīng)驗(yàn)。

原文標(biāo)題:??Introducing KoolKits: OSS Debugging Toolkits for Kubernetes??,作者:Tom Granot

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2022-03-21 09:25:50

Kubernetes開源DevSecOps

2018-01-09 11:09:42

RESTSOAP開源

2021-03-18 10:46:00

Linux監(jiān)控工具命令

2018-06-13 09:00:00

2018-11-13 09:00:00

2023-06-08 00:12:39

2022-05-17 08:00:00

人工智能社交媒體工具

2024-01-23 16:48:32

2020-03-13 10:46:35

數(shù)據(jù)分析商業(yè)智能BI

2018-11-12 11:50:10

開源發(fā)票工具Web

2019-08-02 09:36:22

開發(fā)者技能工具

2023-11-30 08:55:15

LinuxLibreOffic

2011-12-08 09:43:56

虛擬化vmwareVMware Fusi

2022-09-02 17:47:46

Linux筆記應(yīng)用

2019-05-20 10:39:23

工具代碼開發(fā)

2020-05-13 09:22:51

Linux開源緩存工具

2019-10-22 11:11:16

大數(shù)據(jù)工具容器

2020-05-07 10:40:37

Web工具CSS

2020-06-04 08:11:56

數(shù)據(jù)庫開發(fā)SQL Server數(shù)據(jù)庫

2016-02-18 11:20:37

Windows 10域名whois
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號