minikube
で Web アプリケーションの開発環境を作成する手順メモ
今回はフレームワークをインストールする前段階まで
検証環境
Windows10 Home Edition VirtualBox 5.2.16 minikube version: v0.30.0 kubectl v0.12.0
minikube と kubectl のインストール
minikube のダウンロード
下記のリンクから最新の Windows 用の exe minikube-windows-amd64
をダウンロードします。(2018年10月27日現在の最新バージョンは v0.30.0
です)
https://github.com/kubernetes/minikube/releases
minikube のインストール
ダウンロードしたファイルは minikube.exe
とリネームしてパスの通ったフォルダにコピーします。
minikube の config 設定
デフォルトの vm driver を VirtualBox
にするため、コマンドプロンプトで以下のコマンドを入力
C:\>minikube config set vm-driver virtualbox
設定内容の確認
C:\>minikube config view - vm-driver: virtualbox
kubectl のインストール
下記 URL から kubectl.exe
をダウンロードしてパスの通ったフォルダに配置します
https://storage.googleapis.com/kubernetes-release/release/v1.12.0/bin/windows/amd64/kubectl.exe
Kubernetes クラスタの作成
minikube start
で Kubernetes クラスタを作成します。このコマンドは %USERPROFILE%
と同じドライブ(大抵 C ドライブ)で実行しないとエラーになります。
デフォルトでは --memory 2048
--disk-size 20g
と開発環境としてはサイズが小さいのでそれぞれ倍にしました
C:\>minikube start --memory 4096 --disk-size 40g
コマンド入力後、数分待つとクラスタが作成されます
Kubernetes クラスタの確認
kubectl version
で以下のようにサーバーバージョンが取得できた場合、Kubernetes クラスタが正常に作成されています
C:\>kubectl version Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-27T17:05:32Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"windows/amd64"} Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:44:10Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
minikube ip
でクラスタの IP アドレスが確認できます
C:\>minikube ip 192.168.99.100
minikube ssh
でクラスタにログインできます
C:\>minikube ssh _ _ _ _ ( ) ( ) ___ ___ (_) ___ (_)| |/') _ _ | |_ __ /' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\ | ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/ (_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
クラスタ内でも docker
コマンドが使用可能です
$ docker -v Docker version 17.12.1-ce, build 7390fc6 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE k8s.gcr.io/coredns 1.2.2 367cdc8433a4 8 weeks ago 39.2MB k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 2 months ago 122MB k8s.gcr.io/kube-proxy-amd64 v1.10.0 bfc21aadc7d3 7 months ago 97MB k8s.gcr.io/kube-apiserver-amd64 v1.10.0 af20925d51a3 7 months ago 225MB k8s.gcr.io/kube-scheduler-amd64 v1.10.0 704ba848e69a 7 months ago 50.4MB k8s.gcr.io/kube-controller-manager-amd64 v1.10.0 ad86dbed1555 7 months ago 148MB k8s.gcr.io/etcd-amd64 3.1.12 52920ad46f5b 7 months ago 193MB k8s.gcr.io/kube-addon-manager v8.6 9c16409588eb 8 months ago 78.4MB k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64 1.14.8 c2ce1ffb51ed 9 months ago 41MB k8s.gcr.io/k8s-dns-sidecar-amd64 1.14.8 6f7f2dc7fab5 9 months ago 42.2MB k8s.gcr.io/k8s-dns-kube-dns-amd64 1.14.8 80cc5ea4b547 9 months ago 50.5MB k8s.gcr.io/pause-amd64 3.1 da86e6ba6ca1 10 months ago 742kB gcr.io/k8s-minikube/storage-provisioner v1.8.1 4689081edb10 11 months ago 80.8MB
デフォルトで VirtualBox の共有フォルダ機能で C:\Users
以下が /c/Users
にマウントされています
$ ls -la /c/Users ls: cannot read symbolic link '/c/Users/All Users': Protocol error total 61 dr-xr-xr-x 1 docker docker 4096 May 31 14:01 . drwxr-xr-x 3 root root 0 Oct 27 03:08 .. lrwxrwxrwx 1 docker docker 0 Apr 11 2018 'All Users' dr-xr-xr-x 1 docker docker 8192 May 31 14:06 Default dr-xr-xr-x 1 docker docker 8192 May 31 14:06 'Default User' drwxrwxrwx 1 docker docker 0 Oct 2 2016 Default.migrated drwxrwxrwx 1 docker docker 8192 May 31 14:10 DefaultAppPool drwxrwxrwx 1 docker docker 28672 Oct 26 14:57 takaya030 dr-xr-xr-x 1 docker docker 4096 May 31 13:52 Public -rwxrwxrwx 1 docker docker 174 Apr 11 2018 desktop.ini
minikube ssh
でログインした場合 exit
でログアウトします
$ exit logout C:\>
Kubernetes クラスタの停止
minikube stop
で停止します
C:\>minikube stop Stopping local Kubernetes cluster... Machine stopped.
最後に
minikube で作成したクラスタは docker-machine create
で作成した Docker ホストVM と同じ感覚で使えそうです
次回はクラスタ上で Laravel
を動かしてみます