• dlv调试kubelet


    1.安装dlv

    $ git clone https://github.com/go-delve/delve
    $ cd delve
    $ go install github.com/go-delve/delve/cmd/dlv
    
    • 1
    • 2
    • 3

    安装后dlv文件会在GOROOT/bin下。执行./bin有输出则是安装成功。为了方便可以把dlv注册一下

    export PATH=$PATH:/root/go/bin
    source ~/.bashrc
    
    • 1
    • 2

    2.编译kubelet
    前提已经部署了k8s服务
    下载对应版本的k8s源码
    cd kubernetes
    编译kubelet 1.22.2
    在这里插入图片描述

    需要传入GOGCFLAGS,否则会设置成-w -s
    make WHAT=“cmd/kubelet” GOGCFLAGS=“-N -l” GOLDFLAGS=“”

    如果是其他版本,如1.25.3
    在这里插入图片描述

    make all WHAT=cmd/kubelet GOFLAGS=-v DBG=1
    如果未指定DBG 会设置成-w -s
    编译成功后的文件在_output/bin下

    systemctl status kubelet
    在这里插入图片描述

    CGRPUP下的命令需要复制过来(我的停掉了所以没有)或者pe -ef | grep PID(29603)
    正常是 1.22版本是
    –bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml -v=9 --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.5 --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6

    1.25.3版本是
    –bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8 --cgroup-driver=systemd

    然后停掉kubelet
    $ systemctl stop kubelet.service

    执行dlv
    dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec /root/kubernetes/_output/bin/kubelet – --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml -v=9 --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.5 --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6

    debug调试
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/548490ed4853451a814ea6f015c14555.png
    之后就可以本地bebug打断点调试了

  • 相关阅读:
    MYSQL性能优化——SQL 性能分析
    从win11切换到ubuntu20的第1天
    线上环境不要使用console.log,会导致页面卡顿,内存泄漏的原因
    opencv视频文件的读取,处理与保存
    ssh登录时间久或登陆后报错
    halcon测量助手使用笔记
    重大技术问题,iPhone 15 Pro Max面临“烧屏门”风波 | 百能云芯
    LeetCode刷题(python版)——Topic42接雨水
    RabbitMQ基本使用一
    Apache Hudi 如何加速传统的批处理模式?
  • 原文地址:https://blog.csdn.net/qq_35679620/article/details/127982332