eyecatch
Sun, Apr 1, 2018

Skaffoldを触ってみた

Skaffoldを試してみた話。 (adsbygoogle = window.adsbygoogle || []).push({}); Skaffoldとは Googleが開発している、Kubernetesアプリケーションを快適に開発するためのツール。 アプリケーションのソースを監視し、変更が入ると、自動的にコンテナイメージをビルドしてKubernetesクラスタにデプロイしてくれる。 2018/3/16に発表された新しいツールで、触った感じではまだこれからといった感じだった。 Goで書かれていて、Linux、OS X、Windows用のバイナリが提供されている。 似たツールにはMicrosoftのDraftがある。 また、Gitのコミットを自動デプロイしてくれるものに、Gitkube、Jenkins X (エックス)がある。 Windows版を試す 自PCがWindowsなのでWindows版を試す。 会社で使ってるのもWindowsだし。 Skaffoldを使うには、Skaffoldの実行バイナリ、Kubernetesクラスタ、そのクラスタをコンテクストに設定したkubectl、Dockerが必要。 まずWindows版Skaffoldをインストールする。 GitHubのリリースページからWindowsバイナリをダウンロードして、skaffold.exeにリネームしてPATHの通ったところに置くだけ。 Skaffoldのバージョンは0.3.0。 Kubernetesクラスタは、Windows 10 Home上にminikube 0.22.2で作ったKubernetes 1.7.0のクラスタ。 minikubeは以前インストールしたものを使う。 minikubeを起動。 > minikube start --kubernetes-version v1.7.0 kubectlもminikubeと一緒にインストール済み。 Dockerについては、デーモンはminikube上のを使えばいいとして、クライアント(Docker Client)はskaffoldコマンドから実行するのでWindows上にないとだめはなず。 WindowsでDockerと言えば今ならDocker for Windowsだけど、これはWindows 10 Proじゃないと使えなかったはずなので、Docker Toolboxでクライアントをいれた。 このクライアントはデフォルトではローカルのデーモンを見てるので、minikubeのデーモンを見させる。 そのための設定はminikubeのコマンドで分かるようになっている。 > minikube docker-env SET DOCKER_TLS_VERIFY=1 SET DOCKER_HOST=tcp://192.168.99.100:2376 SET DOCKER_CERT_PATH=C:\Users\kaitoy\.minikube\certs SET DOCKER_API_VERSION=1.23 REM Run this command to configure your shell: REM @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i これに従って以下のコマンドを実行するとクライアントの設定完了。 > @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i これで準備完了。 SkaffoldのGetting Startedをやってみる。 Skaffoldのリポジトリをcloneして、コマンドプロンプト開いて、examples/getting-startedにcdして、以下のコマンドを実行。 > skaffold dev エラーで終わった。 [31mERRO[0047] run: running skaffold steps: starting watch on file C:\Users\kaitoy\Desktop\skaffold\examples\getting-started\Dockerfile: adding watch for C:\Users\kaitoy\Desktop\skaffold\examples\getting-started\Dockerfile: The parameter is incorrect.