【スキャフォールド】

Skaffold とは?

💡 コードを変えたら即デプロイ!Kubernetes開発を爆速にするCLI
📌 このページのポイント
Skaffold の開発ループ(skaffold dev) 1. コード変更 ファイル保存を検知 2. ビルド Dockerイメージ作成 3. デプロイ Kubernetesに反映 4. ログ表示 結果をリアルタイム表示 自動で 繰り返し コードを保存するだけで、ビルド→デプロイが自動で繰り返される
Skaffold の開発ループのイメージ
ひよこ ひよこ

Skaffoldって何をしてくれるの?

ペンギン先生 ペンギン先生

Kubernetesで開発するときの「コード修正→ビルド→コンテナイメージ作成→デプロイ」という面倒な作業を全部自動でやってくれるツールだよ。`skaffold dev` と打てば、ファイルを保存するたびに自動でビルドとデプロイが走るんだ

ひよこ ひよこ

それがないと大変なの?

ペンギン先生 ペンギン先生

すごく大変だよ。Kubernetesデプロイするには、コードを修正するたびに「Dockerイメージをビルド→レジストリにプッシュ→マニフェストを適用」という手順が必要なんだ。これを手動でやると1回の修正で何分もかかるから、開発効率がガタ落ちになるんだよ

ひよこ ひよこ

Docker Composeで開発するのとは何が違うの?

ペンギン先生 ペンギン先生

Docker Composeはローカル環境での開発には便利だけど、本番のKubernetes環境とは構成が異なるから「ローカルでは動くのに本番では動かない」問題が起きやすいんだ。Skaffoldは最初からKubernetesデプロイするから、本番環境との差異が少ないよ

ひよこ ひよこ

Googleが作ったってことは、GCPでしか使えないの?

ペンギン先生 ペンギン先生

いや、どのKubernetes環境でも使えるよ。ローカルのminikubeでも、AWS EKSでも、Azure AKSでも動く。Googleが作ったけど完全にオープンソースで、特定のクラウドに縛られない設計なんだ

ひよこ ひよこ

似たツールで「Tilt」っていうのもあるみたいだけど?

ペンギン先生 ペンギン先生

いい質問だね。TiltもSkaffoldと同じ領域のツールだよ。SkaffoldがCLIベースでシンプルなのに対して、TiltはWeb UIがあってビルド状況をブラウザで確認できるんだ。最近はSkaffoldの開発が落ち着いてきていて、GoogleもMicrocks等の他ツールに注力する流れもある。どちらを選ぶかはチームの好みと既存のワークフローに合わせるのがいいよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Skaffold」って出てきたら「Kubernetes開発のビルド・デプロイを自動で繰り返してくれるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Scaffold」 = 足場
💬 建設現場の「足場(Scaffold)」が語源で、Kubernetes開発の土台を支えるツールという意味だよ。スペルは「Skaffold」とKで書くんだよ
← 用語集にもどる