無料ツール
Kubernetes YAML を図に変換
Kubernetes のマニフェストや kubectl -o yaml の出力を貼り付けると、Namespace、Ingress、Service、Deployment とそのつながりを図で確認できます。試すだけならアカウントは不要です。
出力例
docker-compose.yml をお持ちですか? Docker Compose ツールを試す
使い方
YAML を貼り付けるかドロップ
手書きのマニフェスト、kubectl get -o yaml の出力、レンダリング済みの Helm 出力に対応します。--- で区切った複数のリソースや kind: List も使えます。
図を確認
Namespace は枠になります。Ingress、Service、ワークロード、ConfigMap、Secret、ボリュームが配置され、YAML 上の関係どおりに接続されます。
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 で開くには無料アカウントが必要です。