Kubectl插件之dumpy

安装

1. Using Krew:

1
kubectl krew install dumpy

2. Manual installation:

1
2
3
curl -L -O https://github.com/larryTheSlap/dumpy/releases/download/v0.1.0/dumpy_Linux_x86_64.tar.gz
tar xf dumpy_Linux_x86_64.tar.gz 
chmod +x kubectl-dumpy && sudo mv kubectl-dumpy /usr/bin/kubectl-dumpy

使用

1. 创建一个捕获器

1
2
# 在 default 名称空间创建一个名为 capture-ingress-nginx 捕获器, 用于捕获 default 名称空间的 deployment nginx
(|mykind) ➜ ~ k dumpy capture deployment nginx -n default -t default --name capture-nginx -f '-i any' --image registry.cn-hangzhou.aliyuncs.com/soulchild/dumpy:0.2.0

2. 查看捕获器

可以看到 Deployment 有两个 pod , 所以启动了两个 pod 来分别捕获他们的流量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
(|mykind) ➜ ~ k dumpy get capture-nginx
Getting capture details..

name: capture-nginx
namespace: default
tcpdumpfilters: -i any
image: registry.cn-hangzhou.aliyuncs.com/soulchild/dumpy:0.2.0
targetSpec:
    name: nginx
    namespace: default
    type: deployment
    container: nginx
    items:
        nginx-7dbbdcd99d-dz9r5  <-----  sniffer-capture-nginx-1761 [Running]
        nginx-7dbbdcd99d-g82gc  <-----  sniffer-capture-nginx-9964 [Running]
pvc:
pullsecret:

3. 导出 pcap

1
2
3
4
5
# 导出之前可以看看 pod 日志有没有捕获到流量
(|mykind) ➜ ~ k logs sniffer-capture-nginx-1761

# 导出 capture-nginx 捕获器的 pcap 到当前目录 -n 指定捕获器所在的名称空间
(|mykind) ➜ ~ k dumpy export capture-nginx ./ -n default

4. 重启捕获器

重启会重新创建 pod 并删除老 pod, 所以可以指定新的 filter, 可以理解为重新捕获

1
2
3
4
5
(|mykind) ➜ ~ k dumpy restart capture-nginx

# or

(|mykind) ➜ ~ k dumpy restart capture-nginx -f '-i eth0'

5. 停止捕获

1
(|mykind) ➜ ~ k dumpy stop capture-nginx -n default

6. 删除捕获器

1
(|mykind) ➜ ~ k dumpy delete capture-nginx -n default
请我喝杯水
SoulChild 微信号 微信号
SoulChild 微信打赏 微信打赏
0%