# Kubernetes マニフェスト スタジオ（Kubernetes Studio）

Deployment・Service などの YAML を貼ると、リソースの一覧と Service がどの Deployment の Pod に当たるかを表示し、廃止された apiVersion、latest タグ、requests・limits の不足、privileged などの設定を行番号つきで指摘します。スキーマの完全な検証はしません。クラスタへ適用する前の目視確認の補助です。

- URL: https://tools.itlibra.com/ja/kubernetes-studio
- 端末内で処理・アップロードなし
- 最終更新: 2026-10-26

## 使い方

1. YAML を貼り付けるか、ファイルをドロップします（「ファイルを選択」でも可）。「サンプルで試す」でも動作を確認できます。
2. リソースの一覧で apiVersion・kind・名前・namespace・ラベルを確かめます。Deployment の中のコンテナのイメージ・ポート・env の名前・リソースも表示します。
3. 「指摘」で重要度つきの一覧を見ます。廃止 API と Deployment のセレクターの不一致は high、そのほかは medium か low です。
4. 「整形」でインデントを揃えた YAML を保存できます。構文エラーがあるときは整形しません。

## こんなときに

- クラスタに適用する前に、廃止された apiVersion（extensions/v1beta1 など）が残っていないか確かめたい
- Service の selector が Deployment のラベルに当たっているか、目で追わずに確かめたい
- Pod の securityContext（privileged・runAsNonRoot など）の設定を、公開前に見直したい
- Helm などで出した YAML の env に、パスワードを直接書いていないか確かめたい

## できること

### 公式の廃止 API に基づく指摘

Kubernetes の Deprecated API Migration Guide にある「削除された apiVersion と kind の組み合わせ」だけを判定します。削除された版（1.16・1.22・1.25・1.26・1.29）も表示します。

### Service と Deployment の対応

Service の selector が Pod テンプレートのラベルに当たる Deployment を表示します。当たらない selector、targetPort がコンテナのポートにない場合も指摘します。

### Pod Security の項目を確認

privileged・hostNetwork・hostPath（baseline）と、runAsNonRoot・allowPrivilegeEscalation（restricted）の設定を、Pod Security Standards に沿って確かめます。

### env の値は表と指摘に出さない

env の値に秘密らしい形（AWS のキー形式、PEM 鍵など）や、PASSWORD・TOKEN などの名前の直書きがあれば指摘します。表と指摘では名前だけを出し、値は出しません。「整形」は YAML をそのまま出すので、値も含まれます。

### 行番号つきの整形

複数ドキュメントを --- で区切ったまま、キーの順序を変えずにインデントを揃えて保存できます。


## 対応状況

| 機能 | 対応 | 補足 |
| --- | --- | --- |
| 複数ドキュメントの読み取り・リソース一覧 | 対応 | — |
| 廃止 API の検出（公式の移行ガイドの組み合わせだけ） | 一部対応 | 一覧にない組み合わせや、新しく廃止された API は判定しません |
| Service と Deployment の selector・targetPort の対応 | 対応 | — |
| Pod Security（privileged・hostNetwork・hostPath・runAsNonRoot など）の確認 | 一部対応 | baseline と restricted の一部だけです |
| latest タグ・requests/limits・プローブの確認 | 対応 | ベストプラクティスの確認です（Kubernetes の必須ではありません） |
| スキーマの完全な検証（フィールド名・型の全体） | 非対応 | スキーマの完全な検証はしません |
| クラスタへの適用・既存リソースとの比較・kubectl の実行 | 非対応 | 通信しません。kubectl は実行しません |
| Helm・Kustomize のテンプレートの展開 | 非対応 | 展開済みの YAML を貼ってください |

## 制限・注意事項

- 入力は 300,000 文字まで、ドキュメントは 50 件までです。超えた分は読み止めて通知します。
- スキーマの完全な検証はしません。フィールド名の誤字や型の誤りは、指摘されなくてもクラスタが拒否することがあります。
- Pod Security の確認は baseline と restricted の一部だけです。適用する名前空間の Pod Security 設定は確認できません。
- 指摘は公式のドキュメントに沿う項目だけです。Kubernetes のバージョンによって、廃止の時期や推奨は変わります。

## プライバシーと安全性

貼り付けた YAML はお使いの端末の中だけで処理され、サーバーへ送信・保存されることはありません。ブラウザに保存もしません。使用状況の記録にも内容やファイル名は含めません。

## よくある質問

### extensions/v1beta1 の Deployment はいつ使えなくなりましたか？

公式の移行ガイドでは Kubernetes 1.16 で削除されています。このツールは一覧にある組み合わせを、その削除された版とともに指摘します。

### Service が Pod に届かないときは何を見ればよいですか？

Service の selector が Deployment の Pod テンプレートのラベルと一致しているか、targetPort がコンテナのポートにあるかを確かめてください。このツールはその対応を表示します。

### resources や probe がないと、どうなりますか？

この画面では指摘しますが、適用はできることもあります。ただし requests・limits がないと、スケジューリングや資源の上限の制御が働きにくくなります。

### 指摘がなければ、クラスタに適用できますか？

わかりません。スキーマの完全な検証はしないので、kubectl apply --dry-run=server などでクラスタ側の確認も併用してください。

### Secret の値はどう書けばよいですか？

YAML に直接書かず、Secret を作って secretKeyRef で参照します。Secret の値は base64 で、暗号化ではないことに注意してください。
