常见问题

“linkerd” 如何发音?

“linker-DEE”.

为什么称为 linkerd?

linkerd 可以被认为是微服务的动态链接器。在操作系统中,动态链接器获取有关要执行的库和函数调用的名称的运行时信息,并执行使该函数可调用到可执行文件所需的任何工作。linkerd 对微服务进行类似的任务:接受服务名称和对该服务(HTTP,gRPC等)的调用,并且执行使调用成功所需的工作,包括路由,负载均衡,和重试。

如何访问linkerd仪表板(或“管理”)页面?

默认情况下,可以通过 http://localhost:9990 访问管理页面。 您可以在 linkerd配置的admin部分 指定不同端口。

如何获得上游服务metrics?

linkerd 以 JSON 格式在 http://localhost:9990/admin/metrics.json 上暴露机器可读的metrics。这是可配置的 - 见上文。

linkerd 的日志去哪里了?

linkerd 日志输出到stderr。对于 HTTP 路由,可以通过 配置文件中的 httpAccessLog 配置额外的访问日志。

linkerd 是否支持动态配置重新加载?

不,我们更喜欢避免这种模式,并将可变的东西卸载到单独的服务。例如,linkerd 使用服务发现来处理已部署实例的变更,并使用namerd来处理路由策略的变更。

linkerd 如何处理服务错误?

linkerd不加修改的传递下游服务生成的错误。

对于HTTP,使用 Content-type text/plain 提供错误,并在应答正文和 l5d-err header中都有解释性的错误消息。

当配置的 namer 无法解析服务来处理请求时,linkerd 响应 400 Bad Request。 这可能是由于 linkerd 配置错误,服务发现问题或附加到请求的不正确的 l5d-dtab header引起的。

与下游服务(包括超时,无法建立连接等)通信的所有其他故障都表示为 503 Bad Gateway

为什么我看到“No hosts available”错误?

如果您在 linkerd 日志或响应中看到““No hosts available”错误消息,则表示 linkerd 无法将请求的服务名称转换为物理目标。这可能是因为dtab不正确,服务发现查找错误,或者目标服务未运行。

要调试此错误,可以使用 linkerd 管理仪表板中的“dtab playground”。只需在浏览器中访问<linkerd host>:9990/delegator。此UI将向您显示 dtab 和 namers 如何转换请求的名称的每个步骤。

(有关 linkerd 如何处理名称的更多信息,请参阅 路由 页面。)