Skaffoldを使ってみる
skaffoldとは
skaffoldは、Googleが開発したツールで、Kubernetes常に構築したアプリを開発する際のイメージのビルドやローカルに構築したのKubernetesへのデプロイを自動化してくれる開発支援ツールです。
skaffold.yaml
の設定に従って、プロジェクトないのファイルに変更が入るたびにイメージのビルド
=> Kubernetesへのデプロイ
が実行されminikubeで最新のアプリケーションが動作します。
また、開発環境の起動だけでなく、設定したKubernetes環境へデプロイ機能も持っています。
今回は、本番環境へのデプロイまでは行わず、skaffoldをインストールからローカルのMinikubeでアプリケーションを動作させるまでを確認してみました。
MinikubeでKubernetesのローカル環境を構築する で使ったこちらのリポジトリを使います。
skaffoldをインストールする
homebrewを使っていれば、brew
コマンドでインストールできます。
skaffoldの設定ファイルを作成する
以下のコマンドで設定ファイルのテンプレートを作成します。
デフォルトでskaffold.yaml
というファイルが作成されます。
開発を開始する
以下のコマンドを実行すると、skaffold.yaml
の設定に基づいて、ローカル開発環境にアプリケーションがデプロイされます。
コマンドを実行すると、skaffoldが実行中になり、プロジェクトのファイルの変更を監視します。
skaffoldが起動している状態で、ソースコードを書き換えると、イメージのビルド
=> Kubernetesへのデプロイ
が実行されます。
起動したアプリケーションにアクセスしたい場合は、以下のコマンドを実行するとブラウザが起動しページが表示されます。
上記のリポジトリを使った場合は、以下のようなページが開きます。
まとめ
設定が必要だったファイルは、アプリケーションをKubernetesにデプロイするためのdeployments.yaml
くらいで、想定していたよりも簡単に実行することができました。
skaffold init
コマンドがプロジェクト内の設定ファイルを自動で認識して、skaffold.yaml
を作成してくれるため、ほぼやることはありませんでした。
今後は、環境変数などを設定する方法などを調べて行こうと思います。