0Pricing
Kubernetes Basics · 课时

分布式追踪与事件

通过分布式追踪分析请求流,并使用 Kubernetes 事件获取集群级信号,完善您的可观测性工具集。

分布式追踪与事件 是 CoddyKit 上的免费 Kubernetes Basics 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kubernetes Basics 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kubernetes Basics 课程共包含 4 节课。

可观测性的三大支柱

可观测性建立在三大支柱之上:日志、指标和追踪。您已经了解了日志和指标;本课将介绍追踪以及 Kubernetes 事件。

什么是分布式追踪?

分布式追踪会跟踪单个请求在多个服务之间传递的全过程。它会显示时间花在哪里,以及哪个服务导致了错误。

跨度与追踪

追踪是请求的完整历程。每一步都是一个跨度,包含开始时间、持续时间和元数据。多个跨度嵌套后会形成一棵树。

# A trace for one checkout request
# trace_id: abc123
#  span: api-gateway        (40ms)
#    span: order-service    (25ms)
#      span: db-query       (15ms)
#    span: payment-service  (10ms)

上下文传播

要使追踪正常工作,各个服务需要在请求标头中传递追踪上下文,这样每一跳都能关联到同一条追踪记录。

# W3C Trace Context header
traceparent: 00-abc123def456-00f067aa0ba902b7-01

OpenTelemetry

OpenTelemetry (OTel) 是对应用进行插桩并导出追踪数据的标准。OpenTelemetry 收集器可以在集群中运行,用于接收和转发跨度。

追踪后端

跨度会发送到 Jaeger 或 Tempo 等后端。后端会存储并可视化追踪数据,让您可以深入查看速度缓慢的请求。

# deploy a collector that exports to Jaeger
kubectl get pods -n observability -l app=otel-collector

Kubernetes 事件

与应用追踪分开,Kubernetes 会发出描述集群活动的事件:调度、拉取镜像、探针失败等。

kubectl get events --sort-by=.lastTimestamp

读取资源的事件

kubectl describe 会显示与特定对象相关的事件,这通常是了解容器组为何卡住的最快方法。

kubectl describe pod my-app
# Events:
#  Warning  FailedScheduling  no nodes available
#  Normal   Scheduled         assigned to node-2
#  Warning  BackOff           restarting failed container

事件的生命周期很短

事件默认会在大约一小时后过期。若要长期保留集群历史记录,请将事件导出到日志或事件后端,以免丢失这些信号。

关联信号

真正的力量来自关联所有来源:指标出现峰值后,您可以找到一条追踪记录;追踪记录指向某个服务;该服务的日志和事件则说明根本原因。

何时使用追踪

  • 请求速度很慢,但您不知道是哪个服务导致的
  • 错误出现在一长串微服务的深处
  • 您需要了解跨服务依赖关系

快速检查

测试您对追踪的了解。

回顾

您学习了可观测性的第三个支柱:分布式追踪通过跨度和上下文传播,通常经由 OpenTelemetry 将请求跨服务跟踪到 Jaeger 或 Tempo。您还学习了如何读取生命周期很短的 Kubernetes 事件来进行集群级诊断,以及如何综合关联日志、指标、追踪和事件。

常见问题解答

「分布式追踪与事件」课时是免费的吗?

是的 — 「分布式追踪与事件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kubernetes Basics 课程的其余内容,请升级到 CoddyKit PRO。 Kubernetes Basics 课程共包含 4 节课。

「分布式追踪与事件」这节课中我会学到什么?

通过分布式追踪分析请求流,并使用 Kubernetes 事件获取集群级信号,完善您的可观测性工具集。 你通过在浏览器中直接运行的动手代码来练习 Kubernetes Basics,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Kubernetes Basics 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Kubernetes Basics 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「分布式追踪与事件」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Kubernetes Basics 课中编写并运行代码吗?

能。每节 Kubernetes Basics 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 kubectl logs 查看日志
  2. 使用 Prometheus 与 Grafana 处理指标
  3. 健康检查:存活与就绪探针
  4. 分布式追踪与事件
← 返回 Kubernetes Basics