免费工具

Kubernetes YAML 转图表

粘贴 Kubernetes 清单或 kubectl -o yaml 的输出,即可以图表形式查看 Namespace、Ingress、Service、Deployment 及其连接。试用无需账号。

示例输出

由 Kubernetes 示例绘制的示例图表

有 docker-compose.yml 文件? 试试 Docker Compose 工具

使用方法

  1. 粘贴或拖入 YAML

    支持手写的清单、kubectl get -o yaml 的输出,以及渲染后的 Helm 输出。多个以 --- 分隔的资源和 kind: List 也可以。

  2. 查看图表

    Namespace 会变成框架。Ingress、Service、工作负载、ConfigMap、Secret 和存储卷会按 YAML 中的关联方式排布并连接。

  3. 在 Archboard 中打开

    保存为新图表后,可以重新排列、添加注释、分享链接,或导出为 SVG 和 PNG。注册只需 Google 或 GitHub 账号。

支持的资源类型

以下 37 种资源类型会以专属节点绘制:

工作负载

  • Pod
  • Deployment
  • StatefulSet
  • DaemonSet
  • ReplicaSet
  • Job
  • CronJob
  • Node

网络

  • Service
  • Ingress
  • IngressClass
  • Gateway
  • HTTPRoute
  • GRPCRoute
  • TCPRoute
  • TLSRoute
  • UDPRoute
  • NetworkPolicy

配置与密钥

  • ConfigMap
  • Secret

存储与伸缩

  • PersistentVolumeClaim
  • PersistentVolume
  • StorageClass
  • HorizontalPodAutoscaler
  • VerticalPodAutoscaler

访问控制(RBAC)

  • ServiceAccount
  • Role
  • ClusterRole
  • RoleBinding
  • ClusterRoleBinding

策略

  • PodDisruptionBudget
  • ResourceQuota
  • LimitRange
  • MutatingWebhookConfiguration
  • ValidatingWebhookConfiguration

扩展

  • CustomResourceDefinition

分组

  • Namespace

Namespace 会绘制为包住其中所有内容的框架。

其他任何类型(如 cert-manager 的 Certificate、Argo 的 Rollout 或任意自定义资源)都会以显示类型和 API 组的“自定义资源”卡片绘制在其 Namespace 内。只有集群或 Helm 自动创建的资源(Event、默认服务账号、kube-root-ca.crt、Helm 发布记录)会被排除,结果中会显示其数量。

图表能显示什么,不能显示什么

能显示

  • 以框架表示的 Namespace,以及其中的资源
  • Ingress 规则与其路由到的 Service 之间的连接
  • Service 与其标签选择器匹配的工作负载之间的连接
  • ConfigMap、Secret、PersistentVolumeClaim 与使用或挂载它们的工作负载之间的连接
  • HorizontalPodAutoscaler 与其伸缩目标、NetworkPolicy 与其选中的工作负载之间的连接
  • ServiceAccount 与以其身份运行的工作负载之间的连接,以及 RoleBinding 与其 Role 和 ServiceAccount 之间的连接
  • Gateway API 的 Gateway 与其路由、路由与其后端 Service 之间的连接
  • CustomResourceDefinition 与其定义的自定义资源之间的连接

不能显示

  • 运行时哪些服务相互调用;YAML 描述的是资源之间的关联,而不是实际流量
  • Secret 数据和环境变量的值(只读取名称)
  • 集群的实时状态,例如状态、事件或资源用量
  • kubectl get 的表格输出(请加上 -o yaml 运行命令)

常见问题

可以粘贴 kubectl 的输出吗?

可以,只要是 YAML 格式:运行带 -o yaml 的 kubectl get(例如 kubectl get deploy,svc,ingress -n shop -o yaml),然后粘贴结果。status、uid 和时间戳等由 Kubernetes 添加的字段会被忽略。不支持默认的表格输出。

支持 Helm chart 吗?

请先用 helm template 渲染 chart,再粘贴输出。仍带有 Go 模板占位符的未渲染模板无法作为 YAML 读取。

在 Archboard 中打开图表后会怎样?

你看到的图表(形状、名称和连接)会保存为工作区中的新图表,你可以重新排列、添加备注、分享或导出。它只是一个起点:之后对 YAML 的修改不会更新该图表。

这个工具免费吗?

免费。粘贴 YAML 和查看图表都无需账号。在 Archboard 中打开需要一个免费账号。

一分钟打开画布

使用 Google 或 GitHub 登录。单席位免费,团队加入后再升级。