kubernetes比較復(fù)雜,kubelet在某些場景下長時(shí)間運(yùn)行后會出現(xiàn)死鎖。有沒有辦法轉(zhuǎn)儲正在運(yùn)行的 kubelet 的 goroutine 堆棧跟蹤?如下的預(yù)期輸出對于調(diào)試 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我很感激任何人都可以分享關(guān)于如何轉(zhuǎn)儲 kubelet 的 goroutine 堆棧競爭的經(jīng)驗(yàn),就像 docker 提供的那樣[1]$ pkill -SIGUSR1 dockerd[1]. https://success.docker.com/article/how-to-dump-goroutines-stacktraces
1 回答

一只斗牛犬
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
pprof,它將保持 kubelet 運(yùn)行
在node-x上安裝go
在一個(gè)終端中運(yùn)行“kubectl proxy”
卷曲 http://localhost:8001/api/v1/proxy/nodes/node-x/debug/pprof/goroutine?debug=2
注意:API針對不同的k8s版本進(jìn)行了更改,對于1.16,它是curl http://127.0.0.1:8001/api/v1/nodes/node-**/proxy/debug/pprof/goroutine?debug=2
向 kubelet 發(fā)送信號,導(dǎo)致 kubelet 退出并出現(xiàn)堆棧轉(zhuǎn)儲
殺死-SIGABRT
- 1 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報(bào)
0/150
提交
取消