WDavid404 / QA_room

record some useful script for QA
0 stars 0 forks source link

Kubectl debug #4

Open WDavid404 opened 6 months ago

WDavid404 commented 6 months ago

https://developer.mamezou-tech.com/blogs/2022/08/25/kubernetes-ephemeral-containers-intro/

kubectl debug podでEphemeral Containersを作成します。 その名の通りEphemeral Containersは一時的なコンテナで、デバッグ対象のPodにアタッチすることで、Pod内の他のコンテナにアクセスできます。 image

e.g1

# Ephemeral Containersでシェル(sh)実行
kubectl debug sample-app -it --image=alpine --target sample-app -- sh

e.g2

kubectl debug sample-app -it --image=curlimages/curl -- curl localhost:8080
> Defaulting debug container name to debugger-wj662.
> hello sample app!

// curlコマンドを持つイメージ(curlimages/curl)をEphemeral ContainersとしてPod内に配置し、Node.jsのHTTPサーバーにアクセスしてみます。
WDavid404 commented 6 months ago

利用 nicolaka/netshoot 在Pod里诊断网络问题 https://github.com/nicolaka/netshoot

For example, if I want to check model service, I can kubectl -nqa debug -i model-f9f9d4f5-knmkn --image=nicolaka/netshoot --target=model -- termshark -Y "ip.src == 100.64.27.212"

image

只记录53 port的信息

kubectl -nqa debug -i model-f9fcccc-knmkn --image=nicolaka/netshoot --target=model  -- tcpdump -nn port 53 > model-dump.txt
kubectl -nqa debug -i test-backend-service-66bc4aaa-4bbb --image=nicolaka/netshoot --target=test-backend-service -- tcpdump -nn port 53 > backend-service-dump.txt

查找container name作为👆的target用

kubectl -nqa describe pod model-f9f9d4f5-knmkn|grep container

查找container IP:

kubectl -nqa describe pod model-f9f9d4f5-knmkn|grep IP       
IP:               100.64.27.212

termshark command:

termshark -i eth0 -w save.pcap