4. Kubernetes 观测基础:Metrics、Logs、Traces 三大支柱,以及它们在供应链场景中的角色
在深入镜像供应链信任边界之前,必须建立统一的观测语言。Kubernetes 社区公认的“三大支柱”——Metrics(指标)、Logs(日志)、Traces(链路)——构成了可观测性的技术底座。在供应链场景中,这三者并非孤立存在,而是分别对应“是否异常”、“发生了什么”、“哪里出了问题”三个核心追问。
4.1 三大支柱的定义与数据特征
| 支柱 | 数据类型 | 典型采集方式 | 存储特征 | 供应链场景核心价值 |
|---|---|---|---|---|
| Metrics | 数值型时间序列 | Prometheus / kube-state-metrics | 高压缩、可聚合、低精度 | 发现镜像拉取失败率突增、准入拒绝率变化 |
| Logs | 非结构化/半结构化文本 | Fluentd / Vector / containerd 日志 | 高容量、全文检索、上下文丰富 | 追溯签名验证失败原因、镜像层校验错误详情 |
| Traces | 分布式事件链路 | OpenTelemetry / Jaeger | 高维度、有向无环图、采样敏感 | 定位供应链策略执行链路的瓶颈或阻断点 |
关键认知:三大支柱在供应链场景中不是“三选一”,而是“三合一”。Metrics 告诉你“准入策略拒绝率从 2% 升到了 15%”,Logs 告诉你“拒绝原因是镜像摘要不匹配”,Traces 告诉你“耗时最长的环节是远程签名验证服务”。
4.2 供应链场景中的 Metrics:信任边界的“仪表盘”
Metrics 是供应链健康度的第一道防线。在 Kubernetes 集群中,与镜像供应链信任相关的指标主要分布在以下层级:
- kubelet 层:镜像拉取失败次数(按原因标签)、镜像拉取延迟分位数。
- 准入控制层:策略评估总次数、通过/拒绝/错误计数、策略执行耗时。
- 签名验证层:签名验证成功/失败次数、证书过期预警、信任锚点变更计数。
- 镜像仓库层:镜像摘要校验失败率、镜像层完整性检查结果。
4.3 供应链场景中的 Logs:信任边界的“黑匣子”
当 Metrics 触发告警后,Logs 是深入排查的第一入口。在镜像供应链信任边界中,关键日志事件包括:
- 镜像拉取事件:containerd 或 CRI-O 记录的镜像层下载日志,包含层 digest、下载来源、TLS 握手状态。
- 签名验证事件:Cosign / Notation 验证器输出的验证结果日志,包含签名者身份、证书链、验证时间。
- 准入策略评估事件:Kyverno / OPA Gatekeeper 记录的策略匹配日志,包含触发策略名称、资源对象、决策结果。
- 审计日志:Kubernetes API Server 的审计日志,记录谁在何时创建了使用特定镜像的 Pod。
日志标签化最佳实践:所有供应链相关日志必须携带以下结构化字段,否则无法在事后审计中重建信任链:
{
"image_ref": "registry.example.com/app:v1.2.3",
"image_digest": "sha256:a1b2c3d4...",
"signature_identity": "dev-team@example.com",
"policy_name": "require-signature",
"verification_result": "pass",
"cluster_node": "node-01"
}
4.4 供应链场景中的 Traces:信任边界的“故障定位仪”
Traces 在供应链场景中是最容易被忽视但价值最高的支柱。一个完整的镜像部署请求,从用户提交 YAML 到 Pod 真正运行,中间经过的信任检查环节可能多达 5-8 个。Traces 能够将每个环节的耗时、状态、错误串联起来。
典型的供应链信任链路包含以下 Span:
- API Server 准入 Webhook 调用(客户端 → 准入控制器)
- 策略引擎评估(Kyverno / OPA 内部规则匹配)
- 远程签名验证服务调用(集群内 → 外部验证端点)
- 镜像仓库层校验(kubelet → 镜像仓库,验证层 digest)
- kubelet 镜像拉取与解包(本地存储写入)
供应链 Trace 的常见陷阱:很多团队只对“用户请求”做 Trace,忽略了 kubelet 到镜像仓库的拉取链路。实际上,镜像层校验失败、签名验证超时等供应链关键故障往往发生在 kubelet 与外部仓库之间。务必使用 OpenTelemetry 的
instrumentation 机制将 containerd 和 CRI-O 的调用也纳入 Trace 上下文。
4.5 三大支柱在供应链信任边界中的协同模型
三大支柱在供应链场景中不是平行关系,而是分层递进的协同模型:
| 阶段 | 使用支柱 | 典型问题 | 输出动作 |
|---|---|---|---|
| 告警发现 | Metrics | 镜像拉取失败率 > 5% | 触发告警,通知 SRE |
| 快速定位 | Logs | 失败原因:签名验证失败,证书已过期 | 确认故障类型,确定影响范围 |
| 根因分析 | Traces | 验证服务响应慢,TLS 握手阶段耗时 2s | 定位到具体服务实例或网络链路 |
| 修复验证 | Metrics + Logs | 修复后失败率回归基线,日志无新错误 | 确认信任边界恢复 |
供应链观测标签体系的核心原则:三大支柱必须共享同一套标签命名空间。例如,Metrics 中的
image_digest 标签、Logs 中的 image_digest 字段、Traces 中的 image.digest 属性,必须使用相同的值格式和语义。这是下一章构建“统一观测标签体系”的基础。