Open4
Skaffoldとは

- Googleが開発しているオープンソースのコマンドラインツール
- Kubernetesを用いた開発プロセスを容易にする

Skaffoldの特徴
- ローカルでの高速なKubernetes開発
- ソースコードの変更を検出し、ビルド・プッシュ・テスト・デプロイを自動的に処理
- ポリシーベースのイメージタグ付け
- 自動的に設定されたルール(ポリシー)に基づいて、Dockerイメージにタグをつける
- 継続的なフィードバック
- デプロイのログ管理やリソースのポートフォワーディングを自動化
- プラットフォーム対応
- クロスプラットフォーム対応
- CI/CDパイプライン対応
- skaffold build, skaffold test, skaffold deploy をCI /CDパイプラインに組み込み可能
- GitOps統合
- GitOpsワークフローで使用するKubernetesマニフェストを生成するために、skaffold renderでイメージをビルドし、テンプレート化されたマニフェストを
- シンプルな設定管理
- skaffold.yamlで宣言的なプロジェクト設定を提供
- skaffold init でSkaffoldの設定を生成

何が嬉しいか
- 開発中に行う「コードの変更→ビルド→デプロイ」の一連の作業を自動化してくれる
- 効率的に開発が進められる
- コードを変更するだけで、素早いフィードバックが得られる
- 効率的に開発が進められる

Skaffoldを使わない場合
- アプリケーションのビルド
docker build -t hoge/hoge-app:latest .
- イメージをリモートリポジトリへプッシュ
docker push hoge/hoge-app:latest
- Kubernetesクラスタにアプリケーションのデプロイ
kubectl apply -f deployment.yaml
- デプロイ状況・ログの確認
kubectl get pods
kubectl logs <pod-name>
- ポートフォワーディング
kubectl port-forward <pod-name> 8080:80
Skaffoldを使うと
- これが
skaffold dev --port-forward
を実行するだけで良くなる - しかもプロセスを止めるとkubernetesリソースを削除してくれる