遠程debug kubenetes controller

最近在學習騰訊開源的istio sidecar方案lazyxds的時候,想要深入lazyxds的執(zhí)行過程。除了笨拙的添加日志,然后打包部署查看外,lazyxds作為一種kubenetest controller的實現(xiàn),也可以通過遠程調(diào)試的方式進行查看,更加方便直觀。

后續(xù)再補一些背景知識吧,先上干貨。

前提

步驟

  1. 未添加delve的dockerfile

     FROM alpine:3.10
     COPY lazyxds /usr/local/bin/
     ENTRYPOINT ["/usr/local/bin/lazyxds", "-v", "4"]
    
  2. 添加delve的dockerfile

    FROM alpine:3.10
    FROM golang
    RUN go install github.com/go-delve/delve/cmd/dlv@latest
    RUN ls -al /go/bin/dlv
    COPY lazyxds /usr/local/bin/
    EXPOSE 40000
    ENTRYPOINT ["/go/bin/dlv","exec", "/usr/local/bin/lazyxds", "--listen=:40000", "--headless=true", "--api-version=2"]
    

注意 先把-v 4 參數(shù)去掉了

  1. 重新打包 & deploy到minikube中

    sudo make docker-build.lazyxds
    
  2. kubenetes dashboard找到要remote debug的pod

     pod: lazyxds-697687644f-j8cf2
     namespace: istio-system
    
image.png
  1. expose debug指定的40000端口

    kubectl port-forward lazyxds-697687644f-j8cf2  40000:40000 -n istio-system
    
    image.png
  2. goland 指定remote debug端口


    image.png
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容