kube-debug一键开启任意K8S主机和容器的可视化Web调试

图片

[1] 背景介绍

小伙伴们有没有经常遇到服务器故障后,需要安装一大堆调试工具进行排障的情况呢?本地docker容器出现故障之后,是如何排查的呢?在K8S Node出现故障之后,你又是如何调试的呢?在使用K8S的时候遇到某些Pod挂掉或者Pod无法登录的情况下,如何排障呢?前不久,云大君的容器服务器也遇到故障需要排查,Github上刚好推送给我一个社区新开源的Debug工具,于是我下载下来体验了一把。

图片

kube-debug是一款比较好用的调试工具箱,能够在任意主机上一键开启本机的调试排障、远端K8S Node主机的调试排障、本机容器的调试排障、K8S集群中任意Pod的调试排障。

[2] 快速开始调试

只需要三步就可以快速开始可视化Web调试工作,下面跟着云大君来体验一把。

2.1 下载kube-debug软件包

我们可以从https://github.com/cloudnativer/kube-debug/releases这个地方下载kube-debug的软件包。

# cd ~/

# wget https://github.com/cloudnativer/kube-debug/releases/download/v0.1.0/kube-debug-v0.1.0-x86.tgz

# tar -zxvf kube-debug-v0.1.0-x86.tgz

# cd ~/kube-debug/

2.2 初始化本地调试环境

执行“kube-debug -init”参数可以对本地调试环境进行初始化:

# cd ~/kube-debug/

# ./kube-debug -init

2.3 开始调试之旅

此时,我们就可以使用“kube-debug”命令开始调试任意容器、主机、Pod、Node之旅啦!

比如我们需要对本地主机进行调试,我们可以执行“kube-debug -localhost”命令快速开始本机的调试工作:

# cd ~/kube-debug/

# ./kube-debug -localhost

命令执行完毕之后,会显示下面的结果信息:

图片

现在我们就可以进入调试环境进行调试啦!从上面命令的返回信息可以看到kube-debug提供了两种方便你调试的途径:

途径一:使用Web浏览器进行调试和链接分享

现在我们就可以使用Web浏览器访问 http://192.168.1.12:3080 地址,进入可视化UI界面进行调试啦。

图片

我们可以把这个调试链接( http://192.168.1.12:3080 )发给项目组的其他同事,让小伙伴们来协助我一起定位排查故障,大家一起高效协作!

在这里,我们能够轻松地进行可视化调试,所有的命令都可以通过按tab键提示和补全。

图片

图片

比如你可以执行“termshark”离开进行网络抓包分析:

图片

比如你也可以执行“strace”来诊断和跟踪操作系统进程相关的故障等。此外,kube-debug集成了curl、fping、iftop、iperf、iptraf-ng、mtr、net-snmp-tools、nmap、strace、tcpdump、tcptraceroute、termshark、git等上百种调试工具。

途径二:直接进入本地调试环境

我们除了可以使用上面的Web浏览器来方便的分享和调试外,还可以在一些网络不通的环境下直接使用“docker exec -it kube-debug-localhost /bin/bash”命令一键进入调试环境:

图片

[3] 调试功能介绍

3.1 调试本地主机

上面已经介绍过,我们可以使用“kube-debug -localhost”命令快速开始本机的调试工作:

# cd ~/kube-debug/

# ./kube-debug -localhost

命令执行完毕之后,会显示下面的结果信息:

图片

现在我们就可以进入调试环境进行调试啦!

从上面命令的返回信息可以看到kube-debug提供了两种方便你调试的途径:

(1)使用Web浏览器进行调试和链接分享:我们就可以使用Web浏览器访问 http://192.168.1.12:3080地址,就可以进入可视化UI界面进行调试,并分享给团队其他人一起来调试!

(2)直接进入本地调试环境:我们除了可以使用上面的Web浏览器来方便的分享和调试外,还可以在一些网络不通的环境下直接使用“docker exec -it kube-debug-localhost /bin/bash”命令一键进入调试环境。

图片

3.2 调试本地容器

我们可以使用“kube-debug -container <container id or containername>”命令对本地主机上的容器进行调试。例如我们要对本地container id为“a1aa35697643”的容器进行调试,可以执行下面的命令:

# cd ~/kube-debug/

# ./kube-debug -container "a1aa35697643" -debugport 38080

命令执行完毕之后,会显示下面的结果信息:

图片

现在我们就可以进入调试环境进行调试啦!

从上面命令的返回信息可以看到kube-debug提供了两种方便你调试的途径:

(1)使用Web浏览器进行调试和链接分享:我们就可以使用Web浏览器访问http://192.168.1.12:38080地址,就可以进入可视化UI界面进行调试,并分享给团队其他人一起来调试!

(2)直接进入本地调试环境:我们除了可以使用上面的Web浏览器来方便的分享和调试外,还可以在一些网络不通的环境下直接使用“docker exec -it kube-debug-container-a1aa35697643 /bin/bash”命令一键进入调试环境。

图片

3.3 调试K8S集群中的任意Node主机

我们可以使用“kube-debug -node <kubernetes node IP>”命令对K8S集群中的任意Node主机进行调试。例如我们要对本地IP地址为“192.168.1.13”的目标K8S Node主机进行调试,可以执行下面的命令:

# cd ~/kube-debug/

# ./kube-debug -node"192.168.1.13" -debugport 38081

命令执行完毕之后,会显示下面的结果信息:

图片

现在我们就可以进入调试环境进行调试啦!

从上面命令的返回信息可以看到kube-debug提供了两种方便你调试的途径:

(1)使用Web浏览器进行调试和链接分享:我们就可以使用Web浏览器访问http://192.168.1.13:38081地址,就可以进入可视化UI界面进行调试,并分享给团队其他人一起来调试!

(2)直接进入本地调试环境:我们除了可以使用上面的Web浏览器来方便的分享和调试外,还可以在一些网络不通的环境下直接使用“docker exec -it kube-debug-node-192.168.1.13 /bin/bash”命令一键进入调试环境。

图片

3.4 调试K8S集群中的任意Pod

我们可以使用“kube-debug -pod <pod name> -namespace <namespace> -kubeconfig <kubeconfig file>”命令对K8S集群中的任意Pod进行调试。例如我们要对“testns”命名空间下的“test-6bfb69dc64-hdblq”Pod进行调试,可以执行下面的命令:

# cd ~/kube-debug/

# ./kube-debug -pod "test-6bfb69dc64-hdblq" -namespace "testns" -kubeconfig "/etc/kubernetes/pki/kubectl.kubeconfig" -debugport 38082

命令执行完毕之后,会显示下面的结果信息:

图片

现在我们就可以进入调试环境进行调试啦!

从上面命令的返回信息可以看到kube-debug提供了两种方便你调试的途径:

(1)使用Web浏览器进行调试和链接分享:我们就可以使用Web浏览器访问http://192.168.1.15:38082地址,就可以进入可视化UI界面进行调试,并分享给团队其他人一起来调试!

(2)直接进入本地调试环境:我们除了可以使用上面的Web浏览器来方便的分享和调试外,还可以在一些网络不通的环境下直接使用“docker exec -it kube-debug-pod-test-6bfb69dc64-hdblq /bin/bash”命令一键进入调试环境。

图片

[4] 清理调试环境

我们可以通过执行“kube-debug -clear”来清理本地机器的调试环境。执行下面的命令将自动清理调试所产生本地临时缓存文件、调试容器与进程等环境。

# cd ~/kube-debug/

# ./kube-debug -clear

等待命令执行完毕之后,本地调试环境就清理好了。

图片

[5] 更多帮助信息

通过执行“kube-debug -help”命令可以查看到kube-debug工具的更多使用帮助信息:

图片

参考文档:

https://github.com/cloudnativer/kube-debug/blob/main/README.md

https://github.com/cloudnativer/kube-debug

https://github.com/cloudnativer/kube-debug/blob/main/docs/parameters.md

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值