介绍

组件拓扑(Topology View) 提供工作负载的可视化图形界面,展示 Pod、Deployment、Service、Ingress 等资源之间的依赖关系。通过拓扑图,你可以直观地理解应用架构,快速定位服务依赖和潜在瓶颈。

为什么需要拓扑?

  • 可视化依赖:一眼看出哪些服务调用哪些后端
  • 快速导航:点击拓扑节点直接跳转到资源详情
  • 健康状态洞察:拓扑上的颜色/图标显示资源运行状态
  • 问题诊断:识别单点故障、循环依赖、孤立服务

快速开始

打开拓扑视图

  1. 进入 开发者界面 → 工作负载
  2. 点击顶部 组件拓扑 Tab
  3. 页面加载当前项目环境的拓扑图

理解拓扑图元素

图标 资源类型 颜色 含义
🟢 绿色圆 Pod / Deployment 绿色 健康/Running
🔴 红色圆 Pod / Deployment 红色 异常/Failed
🟡 黄色圆 Pod / Deployment 黄色 警告/Pending
🔵 菱形 Service 蓝色 服务入口
🔶 橙色方块 Ingress 橙色 外部路由
↔️ 连线 依赖关系 灰色 Service → Pod,Ingress → Service

基本操作

  • 拖拽画布:鼠标左键拖动拓扑区域
  • 缩放:鼠标滚轮或右下角 +/- 按钮
  • 选中节点:点击节点,右侧显示详情面板
  • 查看详情:双击节点 → 跳转到资源详情页
  • 搜索:顶部搜索框输入资源名称过滤

功能详解

1. 自动布局

拓扑图支持多种布局算法:

  • Hierarchical(分层):按服务层次自上而下排列(默认)
  • Force Directed(力导向):根据依赖强度自动分布,减少交叉
  • Grid(网格):规则排列,适合大规模资源

切换布局:拓扑右上角布局选择器。

2. 资源分组

默认按 Namespace 分组,不同命名空间使用不同背景色区分。

也可以按 应用标签(app label) 分组,将属于同一应用的 Pod、Service、Ingress 聚合在一起。

3. 健康状态指示

拓扑实时反映资源状态:

状态 触发条件 建议操作
🟢 健康 Pod Ready,Deployment 可用副本数 = 期望副本数 无需操作
🟡 警告 Pod Pending、CrashLoopBackOff、副本不足 查看事件和日志
🔴 异常 Pod Failed、Deployment 升级失败 立即处理

4. 依赖高亮

点击某个节点,拓扑会自动高亮:

  • 入站依赖(哪些服务调用我)→ 蓝色连线
  • 出站依赖(我调用哪些服务)→ 绿色连线
  • 无关节点 → 变灰

帮助快速识别关键路径。


典型使用场景

场景 1:新项目架构了解

刚接手一个项目,快速了解服务拓扑:

  1. 打开拓扑 → 查看主要 Service 和 Pod
  2. 双击关键 Service → 查看 Deployment 配置
  3. 发现某个 Service 没有后端 Pod → 排查原因
  4. 查看跨命名空间调用(如有)

场景 2:故障排查

收到告警”服务 A 不可用”:

  1. 在拓扑中定位服务 A 的 Pod(状态红色?)
  2. 查看上游依赖(数据库、缓存)是否正常
  3. 查看网络策略是否阻断(拓扑不显示,需查 NetworkPolicy)
  4. 点击 Pod → 查看日志和事件

场景 3:容量规划

评估应用资源使用:

  1. 拓扑中查看各 Deployment 的副本数
  2. 点击 Pod → 查看 CPU/内存使用率
  3. 发现某个 Pod 持续高负载 → 考虑扩容或优化代码
  4. 查看 Pod 分布(是否集中在某节点)→ 调整调度策略

高级功能

自定义标签过滤

使用顶部的过滤器只显示特定标签的资源:

app=myapp
env=prod
tier=backend

支持多个条件,用逗号分隔。

导出拓扑图

点击 导出 按钮,可以将当前视图导出为:

  • PNG 图片:用于文档或汇报
  • JSON 数据:用于自动化分析

实时刷新

默认拓扑每 30 秒 自动刷新,反映最新状态。可以关闭自动刷新手动点击刷新按钮。


常见问题

Q: 拓扑不显示某些资源?

  • 检查命名空间:拓扑默认显示当前环境的命名空间
  • 检查资源标签:拓扑依赖 app 标签来分组服务
  • 确认资源类型:拓扑显示常见工作负载(Pod/Deploy/STS/Svc/Ing),非标准资源不显示

Q: 连线混乱看不清?

  • 切换布局算法(力导向通常更清晰)
  • 使用过滤器聚焦特定应用
  • 暂时隐藏不相关节点(右键节点 → 隐藏)

Q: 可以自定义拓扑样式吗?

当前版本不支持自定义样式。如果有特殊需求,可以通过导出 JSON 数据后使用第三方工具(如 Graphviz、Cytoscape)重新渲染。

Q: 拓扑性能问题?

如果资源数量巨大(>500),拓扑渲染可能卡顿。建议:

  • 使用过滤器缩小范围
  • 按命名空间切换,避免一次显示所有
  • 联系管理员扩增浏览器内存或减少同时显示的节点数

与开发者观测平台的区别

拓扑侧重于资源依赖关系,是静态/半静态的结构展示;观测平台(指标/日志)侧重于运行时状态。建议结合使用:

  1. 拓扑发现架构 → 确定哪些服务需要监控
  2. 观测平台查看实时指标 → 判断服务质量
  3. 拓扑定位异常节点 → 观测平台深入分析日志

相关链接