kubectl自带的debug命令
在使用k8s的时候需要调试的时候我们一般都是exec -it 命令登录上去执行一些调试命令,但是很多镜像为了体积和安全都不内置这些命令,导致我们需要手动安装调试麻烦
kubectl在1.18之后新加了一个debug子命令将我们的调试容器放到需要调试的pod中方便调试
支持情况
k8s 1.18以后,需要开启特性
使用
调试pod
- 将centos添加到pod进行调试
kubectl debug cdebug-64cd86798b-sjxrl -it --image=centos -- sh
- 将centos添加到pod进行调试的同时复制一个pod叫cdebug-debug且共享进程,–share-processes=true只有在
copy
是才生效
kubectl debug cdebug-64cd86798b-sjxrl -it --image=centos --share-processes --copy-to=cdebug-debug -- sh
调试node
- 需要注意的node会挂载在/host下
kubectl debug node/10.69.202.146 -it --image=centos -- sh
chroot /host
此功能也可以通过node_shell这个kubect插件来实现
参考资料
https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod