综合练习
为 K8s 集群选可观测性方案。
40 分钟
K8s 可观测性栈综合选型
本 track 闭环:在 Kubernetes 上为 CodeRoadMap(platform + backend + MySQL)设计 metrics + logs + traces + infra + artifacts 组合方案,并说明与 observability-essentials、prometheus-essentials 的衔接,对齐 DevOps 路线图 observability 与 delivery 节点。
学习目标
- 交付一份 K8s 可观测性架构图 与组件清单(Helm chart 名称级)
- 在「全自建 / 全 SaaS / 混合」中做出有理有据的选型并估算成本量级
- 列出 onboarding 检查清单:从集群到第一次有效告警 ≤ 1 天
场景假设
- 集群:3 node,staging + prod 命名空间
- 工作负载:Spring Boot backend、Next.js platform、MySQL StatefulSet
- 约束:团队 2 名 DevOps,预算有限,需支持 traceId 关联排障
推荐基线(自建混合)
Metrics: kube-prometheus-stack(Prometheus Operator + Grafana)
Logs: Loki + Promtail DaemonSet
Traces: OTel Collector → Jaeger(或 Grafana Tempo)
Infra: node-exporter(已含)+ 可选 Zabbix 管 VM 边界
Artifacts: Nexus OSS(CI docker push + Helm chart host)
# 概念:kube-prometheus-stack values 片段
prometheus:
prometheusSpec:
serviceMonitorSelectorNilUsesHelmValues: false
grafana:
additionalDataSources:
- name: Loki
type: loki
url: http://loki:3100
- name: Jaeger
type: jaeger
url: http://jaeger-query:16686
ServiceMonitor 抓 backend /actuator/prometheus(prom-k8s);Pod annotation 让 Promtail 解析 JSON 日志中的 trace_id(dob-loki)。
选型决策树
| 若你… | 倾向 |
|---|---|
| 无专职 SRE、要最快价值 | Datadog / New Relic 全家桶 |
| 已有 ES 团队、heavy 日志分析 | EFK + Prometheus |
| 云原生、成本敏感 | kube-prometheus-stack + Loki + Jaeger |
| 强合规 SIEM | Splunk 或 Elastic Security + 现有 APM |
交付物
- 架构图(draw.io):数据流从 Pod → Agent → 存储 → Grafana
- values.yaml 或 compose 清单链接 ops lab 目录