【スキャフォールド】

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で書くんだよ
← 用語集にもどる