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

まとめ
設定が必要だったファイルは、アプリケーションをKubernetesにデプロイするためのdeployments.yamlくらいで、想定していたよりも簡単に実行することができました。
skaffold initコマンドがプロジェクト内の設定ファイルを自動で認識して、skaffold.yamlを作成してくれるため、ほぼやることはありませんでした。
今後は、環境変数などを設定する方法などを調べて行こうと思います。