当启用使用 dlv 进行远程调试时,kubectl 日志仅显示“API 服务器侦听:

我目前有一个使用很多的 go 应用程序fmt.printf。每当该应用程序在 pod 中运行时,我都可以通过以下方式取回日志


kubectl logs podname


但是我还需要集成远程调试。我需要使用dlv允许我的 ide(GoLand) 远程连接到 pod。它在端口 40000 连接到 Pod。此外,当 Pods 映像运行时,它会暴露端口 40000,即 docker 文件中有这个 40000


我的 minikube 中也有类似这样的服务


apiVersion: v1

kind: Service

metadata:

  name: mydebug

spec:

  type: ClusterIP

  selector:

    app: fooapp

  ports:

  - protocol: TCP

    port: 40000

    targetPort: 40000

    name: delve

现在,当我这样做时,kubectl logs podname我只会得到这个


API server listening at: [::]:40000

2022-10-30T21:18:57Z warning layer=rpc Listening for remote connections (connections are not authenticated nor encrypted)

有没有办法取回我的日志?何


aluckdog
浏览 221回答 1
1回答

BIG阳

您可以使用--continueexec 标志,在启动时继续调试过程,这将导致继续记录。所以开始研究例如:dlv --listen=:2345 --headless exec your/app --continue如果没有该--continue标志,delve 将等待远程连接并停止您的应用程序。使用--continue标志,应用程序将已经启动。来自dlv help exec:...Usage:&nbsp; dlv exec <path/to/binary> [flags]Flags:&nbsp; &nbsp; &nbsp; --continue&nbsp; &nbsp; &nbsp;Continue the debugged process on start....
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go