亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何轉儲正在運行的 kubelet 的 goroutine 堆棧競爭

如何轉儲正在運行的 kubelet 的 goroutine 堆棧競爭

Go
慕哥9229398 2023-06-26 16:37:00
kubernetes比較復雜,kubelet在某些場景下長時間運行后會出現死鎖。有沒有辦法轉儲正在運行的 kubelet 的 goroutine 堆棧跟蹤?如下的預期輸出對于調試 kubelet 的死鎖類型問題非常有幫助。goroutine 386 [chan send, 1140 minutes]:k8s.io/kubernetes/pkg/kubelet/pleg.(*GenericPLEG).relist(0xc42069ea20)    /workspace/anago-v1.11.5-beta.0.24+753b2dbc622f5c/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/pleg/generic.go:261 +0x74ek8s.io/kubernetes/pkg/kubelet/pleg.(*GenericPLEG).(k8s.io/kubernetes/pkg/kubelet/pleg.relist)-fm()    /workspace/anago-v1.11.5-beta.0.24+753b2dbc622f5c/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/pleg/generic.go:130 +0x2ak8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1(0xc4212ee520)    /workspace/anago-v1.11.5-beta.0.24+753b2dbc622f5c/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0x54k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc4212ee520, 0x3b9aca00, 0x0, 0x1, 0xc420056540)    /workspace/anago-v1.11.5-beta.0.24+753b2dbc622f5c/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134 +0xbdk8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.Until(0xc4212ee520, 0x3b9aca00, 0xc420056540)    /workspace/anago-v1.11.5-beta.0.24+753b2dbc622f5c/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88 +0x4dcreated by k8s.io/kubernetes/pkg/kubelet/pleg.(*GenericPLEG).Start    /workspace/anago-v1.11.5-beta.0.24+753b2dbc622f5c/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/pleg/generic.go:130 +0x88我很感激任何人都可以分享關于如何轉儲 kubelet 的 goroutine 堆棧競爭的經驗,就像 docker 提供的那樣[1]$ pkill -SIGUSR1 dockerd[1]. https://success.docker.com/article/how-to-dump-goroutines-stacktraces
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

  1. pprof,它將保持 kubelet 運行

  • 在node-x上安裝go

  • 在一個終端中運行“kubectl proxy”

  • 卷曲 http://localhost:8001/api/v1/proxy/nodes/node-x/debug/pprof/goroutine?debug=2

注意:API針對不同的k8s版本進行了更改,對于1.16,它是curl http://127.0.0.1:8001/api/v1/nodes/node-**/proxy/debug/pprof/goroutine?debug=2

  1. 向 kubelet 發送信號,導致 kubelet 退出并出現堆棧轉儲

    殺死-SIGABRT


查看完整回答
反對 回復 2023-06-26
  • 1 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號