发送日志对于网络代理来说是一项昂贵的操作, 默认情况下,Linkerd 数据平面代理配置为仅记录异常事件。但是,有时增加代理日志的详细程度以帮助诊断代理行为很有用。令人高兴的是,Linkerd 允许您动态修改这些日志。
Linkerd 代理的日志级别可以通过在 admin-port 上 使用代理的 /proxy-log-level
端点来动态修改。
例如,要将 pod 的代理日志级别更改为 debug
, 请运行(替换 ${POD:?}
或使用 pod 名称设置环境变量 POD
):
kubectl port-forward ${POD:?} linkerd-admin curl -v --data 'linkerd=debug' -X PUT localhost:4191/proxy-log-level
其中,linkerd-admin
是注入的 sidecar-proxy 的 admin-port(默认为 4191
)的名称。
可以使用 kubectl logs ${POD:?}
查看生成的日志。
如果对代理日志级别的更改应在 pod 的生命周期后保留, 请将 config.linkerd.io/proxy-log-level
annotation 添加 到 pod 模板。
请注意,日志记录对代理吞吐量(proxy throughput)有明显的负面影响。如果 pod 将继续为生产流量提供服务,您可能希望在完成后重置日志级别