kubernetes-重新编译kubernetes组件进行debug
日拱一卒,功不唐捐。大家好,前面文章中提到了通过kubeadm部署了kubernetes集群,现在需要debug kubernetes在对pod操作时候的具体代码流程,虽然部分日志已经通过klog.V 的方式输出了,可以通过设置 --v=6 详细输出日志,但是仍然有些代码没有日志,不方便理解,所以想要定位深层流程,需要在代码中插桩加上点日志再重新编译再运行。
1. 克隆代码
一直用的 1.34.2 的kubernetes
#git clone -b v1.34.2 --depth=1 https://github.com/kubernetes/kubernetes.git2. 修改代码
添加logger.V 以及logger日志(略)
3. 重新编译
编译基于makefile,详细可以看 build/root/Makefile
#make WHAT=cmd/kube-apiserver #make WHAT=cmd/kube-controller-manager #make WHAT=cmd/kube-scheduler二进制生成位置:/_output/bin/ 下
替换二进制并重启相关服务即可。