無料ツール

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 形式なら可能です。kubectl get を -o yaml 付きで実行し(例: kubectl get deploy,svc,ingress -n shop -o yaml)、結果を貼り付けてください。status、uid、タイムスタンプなど Kubernetes が追加するフィールドは無視されます。既定の表形式の出力には対応していません。

Helm チャートでも使えますか?

先に helm template でチャートをレンダリングし、その出力を貼り付けてください。Go テンプレートのプレースホルダーが残ったままのテンプレートは YAML として読み取れません。

図を Archboard で開くとどうなりますか?

表示されている図(図形、名前、接続)が、ワークスペースに新しい図として保存されます。配置の変更、メモの追加、共有、エクスポートができます。あくまで出発点なので、後から YAML を変更しても図は更新されません。

ツールは無料ですか?

はい。YAML の貼り付けと図の表示にアカウントは不要です。Archboard で開くには無料アカウントが必要です。

1分でキャンバスを開く

Google または GitHub でサインイン。1シートは無料で、チームが加わったらアップグレード。