我目前有一个使用很多的 go 应用程序fmt.printf。每当该应用程序在 pod 中运行时,我都可以通过以下方式取回日志kubectl logs podname但是我还需要集成远程调试。我需要使用dlv允许我的 ide(GoLand) 远程连接到 pod。它在端口 40000 连接到 Pod。此外,当 Pods 映像运行时,它会暴露端口 40000,即 docker 文件中有这个 40000我的 minikube 中也有类似这样的服务apiVersion: v1kind: Servicemetadata: name: mydebugspec: type: ClusterIP selector: app: fooapp ports: - protocol: TCP port: 40000 targetPort: 40000 name: delve现在,当我这样做时,kubectl logs podname我只会得到这个API server listening at: [::]:400002022-10-30T21:18:57Z warning layer=rpc Listening for remote connections (connections are not authenticated nor encrypted)有没有办法取回我的日志?何
1 回答
BIG阳
TA贡献1859条经验 获得超6个赞
您可以使用--continueexec 标志,在启动时继续调试过程,这将导致继续记录。
所以开始研究例如:
dlv --listen=:2345 --headless exec your/app --continue
如果没有该--continue标志,delve 将等待远程连接并停止您的应用程序。使用--continue标志,应用程序将已经启动。
来自dlv help exec:
...
Usage:
dlv exec <path/to/binary> [flags]
Flags:
--continue Continue the debugged process on start.
...
- 1 回答
- 0 关注
- 220 浏览
添加回答
举报
0/150
提交
取消