動機
なぜ、こんなことをしようかというと、Dockerのことなんかを踏まえ、開発はUbunutuでやりたいけど、Windows PCしかない。
けど、開発用クラウドは借りたくないな~って人向けです。
やっぱり、開発はあくまでローカルでというのが、私の考えです。
ローカルで開発用クラウド作ってるようで面白かったです。
構築
仮想マシンの作成
仮想マシンの構築は、vagrantを使用します。
OSは、「Ubuntu 18.04 LTS」にしました。
適当なフォルダを作り、下記のvagrantfileを作成・配置し、その場所でvagrant up
します。
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-18.04"
end
vagrant ssh
で、ログインしましょう。
minikubeのインストール
後述しますが、仮想マシンだと仮想化がサポートされていない為、仮想化ドライバーが動きません。
エラーなども含め記載しておきます。
さて、こちらにVMサポートがされていないLinuxでの手順があります。
minikube - Linux Continuous Integration without VM Support
Dockerが必要になるので、インストールします。
Docker - Get Docker CE for Ubuntu
Dockerのインストールが終わったら、下記のコマンドを実行します。
minikubeのインストール
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube
kubectlのインストール
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo cp kubectl /usr/local/bin/ && rm kubectl
各種環境変数の設定です。
export MINIKUBE_WANTUPDATENOTIFICATION=false
export MINIKUBE_WANTREPORTERRORPROMPT=false
export MINIKUBE_HOME=$HOME
export CHANGE_MINIKUBE_NONE_USER=true
設定ファイルが要るようです。
mkdir -p $HOME/.kube
touch $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
minikubeを起動します。
sudo minikube start --vm-driver=none
これで、minikubeの起動までができました。
そのうち続きとして、今回作ったminikubeでアプリをWebアプリを、デプロイし、ホストOS(Windows10)からブラウザで閲覧してみたいと思います。
乞うご期待(笑
番外編
KVMを入れて、動かそうとしたら出たエラー
ドキュメントによると、linux上でのminikubeの稼働条件として、KVMが必要になります。
KVM2というのが推奨されるようなので、そちらをインストールしました。
minikube - Driver plugin installation
sudo apt install libvirt-clients libvirt-daemon-system qemu-kvm
sudo usermod -a -G libvirt $(whoami)
newgrp libvirt
curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \
&& chmod +x docker-machine-driver-kvm2 \
&& sudo cp docker-machine-driver-kvm2 /usr/local/bin/ \
&& rm docker-machine-driver-kvm2
次に、minikubeをインストールします。
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube \
&& sudo cp minikube /usr/local/bin/ \
&& rm minikube
kubectlが必要とのことなので、kubectlをインストールします。
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubectl \
&& chmod +x kubectl \
&& sudo mv kubectl /usr/local/bin/
minikubeを起動します。
sudo minikube start --vm-driver kvm2
ここで、エラーが発生しました。
E0826 15:02:44.776053 15701 start.go:174] Error starting host: Error getting state for host: getting connection: looking up domain: virError(Code=42, Domain=10, Message='Domain not found: no domain with matching name 'minikube'').
この問題については、よくわからなかったのですが、ls -la ~
と打つと、「.minikube」というフォルダが存在し、そちらを削除して再実行したところまたエラー。
E0826 15:45:18.378000 22956 start.go:180] Error starting host: Error creating host: Error creating machine: Error in driver during machine creation: creating domain: Error defining domain xml:
<domain type='kvm'>
<name>minikube</name>
<memory unit='MB'>2048</memory>
...この後も続く
どうやら原因は、仮想化サポートが有効化されていないことが原因のようですが、そもそも仮想VMなのでそんなことできません。
(Nested Virtualizationなる仮想マシン上で、さらに仮想化じゃ~みたいなものがあるらしいですが、サポートもされておらず、手を出せそうにありませんでした。)
この手順は、Linuxを直接インストールしたPCで使えそうですね。
今度やってみます。
以上、番外編でした。