Open4

Skaffoldとは

TsumikiTsumiki

Skaffoldの特徴

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

何が嬉しいか

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

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リソースを削除してくれる