Kubernetes工具集(持續收集......)

Kubescope cli

Kubescope cli 是一個可以運行在本地或 Kubernetes 中的工具,可直接從 Docker Daemon 中收集容器指標並可視化。和 cAdvisor 等其他集羣指標收集服務一樣, kubescope cli 收集指標的週期是 1 秒(而不是 10-15 秒)。如果週期是 10-15 秒,你可能會在測試期間錯過一些引發性能瓶頸的問題。如果你使用 cAdvisor 進行測試,每次都要使用新的 Pod 作爲測試對象,因爲 Kubernetes 在超過資源限制時就會將 Pod 殺死,然後重新啓動一個全新的 Pod。而 kubescope cli 就沒有這方面的憂慮,它直接從 Docker Daemon 中收集容器指標(你可以自定義收集指標的時間間隔),並使用正則表達式來選擇和過濾你想要顯示的容器。

KubeMark

Kubemark是K8s官方提供的一個對K8s集羣進行性能測試的工具。它可以模擬出一個K8s cluster(Kubemark cluster),不受資源限制,從而能夠測試的集羣規模比真實集羣大的多。這個cluster中master是真實的機器,所有的nodes是Hollow nodes。Hollow nodes執行的還是真實的K8s程序,只是不會調用Docker,因此測試會走一套K8s API調用的完整流程,但是不會真正創建pod。

Kubefwd

kubefwd 是一個用於端口轉發Kubernetes中指定namespace下的全部或者部分pod的命令行工具。 kubefwd 使用本地的環回IP地址轉發需要訪問的service,並且使用與service相同的端口。 kubefwd 會臨時將service的域條目添加到 /etc/hosts 文件中。

kubectl-debug

kubectl-debug 是一個簡單的 kubectl 插件, 能夠幫助你便捷地進行 Kubernetes 上的 Pod 排障診斷. 背後做的事情很簡單: 在運行中的 Pod 上額外起一個新容器, 並將新容器加入到目標容器的 pid, network, user 以及 ipc namespace 中, 這時我們就可以在新容器中直接用 netstat, tcpdump 這些熟悉的工具來解決問題了, 而舊容器可以保持最小化, 不需要預裝任何額外的排障工具.

nsenter命令

nsenter 命令是一個可以在指定進程的命令空間下運行指定程序的命令。它位於util-linux包中。
它的命令語法如下:

nsenter [options] [program [arguments]]

options:
-t, --target pid:指定被進入命名空間的目標進程的pid
-m, --mount[=file]:進入mount命令空間。如果指定了file,則進入file的命令空間
-u, --uts[=file]:進入uts命令空間。如果指定了file,則進入file的命令空間
-i, --ipc[=file]:進入ipc命令空間。如果指定了file,則進入file的命令空間
-n, --net[=file]:進入net命令空間。如果指定了file,則進入file的命令空間
-p, --pid[=file]:進入pid命令空間。如果指定了file,則進入file的命令空間
-U, --user[=file]:進入user命令空間。如果指定了file,則進入file的命令空間
-G, --setgid gid:設置運行程序的gid
-S, --setuid uid:設置運行程序的uid
-r, --root[=directory]:設置根目錄
-w, --wd[=directory]:設置工作目錄

如果沒有給出program,則默認執行$SHELL。

具體使用實例

$ docker inspect -f {{.State.Pid}} nginx ## 其中nginx爲需要查看的容器名,也可以使用用Container ID
$ nsenter --target 3326 --mount --uts --ipc --net --pid

kt-connect

kt-connect 是一個可以讓開發環境訪問K8S集羣下應用的工具

Lens

Kubernetes可視化管理工具

Container-diff

container-diff
這是一個可對兩個鏡像進行內容對比的工具。比較本地鏡像使用daemon://。例如:

# container-diff diff daemon://modified_debian:latest remote://gcr.io/google-appengine/debian8:latest

kube-score

Kube-Score是一款針對Kubernetes的性能及安全分析工具,該工具能夠對Kubernetes對象定義進行靜態代碼分析,並給出提升Kubernetes性能和安全性方面的建議。

參考文章

Kubernetes集羣性能測試
kubemark 搭建測試集羣和性能測試
簡化 Pod 故障診斷: kubectl-debug 介紹
A Select List of Kubernetes Tools

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章