Google、開発者のためのKubernetes用コマンドラインツール「Skaffold」オープンソースで公開。開発環境にもKubernetes、ローカルのMinikubeにも対応
KubernetesによるDockerコンテナのクラスタ環境は、一般に運用チームが構築し、柔軟で迅速なデプロイや自動化され安定した運用などの恩恵を受けることになると考えられます。
一方、アプリケーション開発者はDockerコンテナを用いてテストやビルドなどを含む開発環境を利用することはあっても、Kubernetesの環境を開発環境の中に取り込んで利用するということは、手間がかかることもあって、それほど行われていないのではないでしょうか。
Googleがオープンソースで公開した「Skaffold」は、開発者がもっと手軽にKubernetesを開発環境として利用できるようにするためのツールです。
開発者が扱いやすいようにサーバサイドのコンポーネントを持たず、コマンドラインで使えるようになっているなど、下記の機能や特徴を備えています。「Google Cloud Platform Blog: Introducing Skaffold: Easy and repeatable Kubernetes development」から引用します。
- サーバサイドのコンポーネントがないため、クラスタのオーバーヘッドがない
- ソースコードの変更を自動的に検知し、自動的にビルド、リポジトリへのプッシュ、デプロイを実行
- Dockerイメージをタグで管理。Kubernetes manifestなどでいちいちタグのアップデートに関する手間の心配をすることなく、開発に専念できる
- ビルドやデプロイのAPIを用いるため、既存のツールやワークフローに対応。
- 複数のアプリケーションコンポーネントをサポート。変更されたコンポーネントだけをビルドしデプロイする。
下図の上半分は、Skaffoldを用いてローカルのMinikube環境を利用するもの。Dockerイメージのリポジトリへ保存することなく、ローカルのKubernetes環境へデプロイ。
下半分はGoogle Kubernetes Engineを用いる場合で、イメージをGoogle Container Builderでビルドし、イメージをGoogle Container Registryへプッシュ。それをGoogle Kubernetes Engineへデプロイします。
下記は記事「Google Cloud Platform Blog: Introducing Skaffold: Easy and repeatable Kubernetes development」で紹介されたSkaffoldのデモ画面。左下の画面でviによるソースコードの書き換えを行うと、左上の画面でSkaffoldにより自動的にビルドとローカルのKubernetesへのデプロイが行われ、右の画面で書き換え後のアプリケーションが表示され、ローカルのMinikube環境にデプロイされたことが分かります。
Skaffoldを用いることで、開発者はいつも本番と同様のKubernetes環境を開発環境として利用できるようになるとGoogleはSkaffoldの意義を説明しています。
あわせて読みたい
[速報]オラクル「Oracle Autonomous Data Warehouse Cloud」正式公開。機械学習を用いて全自動で運用、チューニング、パッチ適用など実現
≪前の記事
Dockerコンテナのホスティングサービス「Arukas」、さくらインターネットが正式版スタート。無料プランも提供