Kube-Debug定位工具
起因
之前逛技术博客的时候, 看了一个kubectl-debug
的介绍, 可以使用外部的工具, 来处理容器内部的信息, 这个能力非常有用.
因为容器制作的时候有个原则就是容器尽量的小, 导致基础镜像上连一些基础的命令都没有. 例如vi
, ping
这些基本的命令, 都可能要自己安装, 但是很多云环境上, 又没法正常的访问互联网, 导致严重浪费时间.
技术
实现原理说起来很简单, 就是用到容器注入的方式处理, 假设你已经启动了一个TARGET_CONTAINER
容器, 它的ID为TARGET_ID
, 你可以将busybox
的镜像注入到TARGET_CONTAINER
里面, 此时容器空间内的命令为busybox
镜像所提供的, 但是网络或者进程空间全是TARGET_CONTAINER
的
1 | export TARGET_ID=666666666 |
这个技术点确实很牛逼, 之前都不了解, 后面在kubernete
上的实现, 就顺理成章了, 只需要通过API接口将需要的TARGET_ID
查询出来, 注入镜像即可
总结
目前看这个kubectl-debug
只是个人项目, 可能会有一些场景支持的并不好, 特别是各个云上的安全系统. 所以有需要可以拿过来改改代码试用一下, 如果偶尔使用的话, 直接在kubernete
的节点上使用容器注入会更快和可控一点.