Vagrant使ってdocker+minikubeの環境作ろう

# はじめに
今回は[15Stepで習得 Dockerから入るKubernetes コンテナ開発からK8s本番運用まで](https://www.amazon.co.jp/15Step%E3%81%A7%E7%BF%92%E5%BE%97-Docker%E3%81%8B%E3%82%89%E5%85%A5%E3%82%8BKubernetes-%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B%E7%99%BA%E3%81%8B%E3%82%89K8s%E6%9C%AC%E7%95%AA%E9%81%8B%E7%94%A8%E3%81%BE%E3%81%A7-StepUp-%E9%81%B8%E6%9B%B8/dp/4865941614)を
参考にWindows10の環境下にVirtualBox+Vagrantを構築して、さらにその上にUbuntsを起動させ、
そのUbuntsの上にdocker+Kubernetes(正確にはminikube)の実行環境を構築。

なんでこんなに複雑かっていうと、書籍によると
・windowsでもMacでも動作するVagrantとVirtualBoxの仮想マシン上でLinuxサーバを動作させ
　そこの上でdockerとminikubeを動かすので環境がキチンと揃う
・仮想マシン上のメモリ使用が少なく、安定する
・各種ソフトウェアをWindows上、Mac上にインストールしないため、PCのソフトウェア環境をクリーンに保てる
…だそうだ。なるほど、これはナイスですね。

確かに、、、この環境だと、windows上でdocker+minikubeしたいなら

| ソフトウェア       |       概要 |
|:-----------------|:------------------|
| Docker Toolbox | Dockerの実行環境 |
| VirtualBox|Dockerを実行させるために必要 |
| Vagrant|VirtualBoxのフロントエンドとして使用 |
| chocolatey| win版のパッケージマネージャー。curlとkubectlをインストールするときに使用 |
| kubectl| コントローラ |
| Minikube| minikubeの実行環境 |

が、

| ソフトウェア      |概要 |
|:-----------------|:-----|
| VirtualBox | Dockerを実行させるために必要 |
| Vagrant | VirtualBoxのフロントエンドとして使用 |
| git | Docker+Minikubeを構築するためのVagrantファイルを入手するために使用 |

で済むのでPC環境をクリーンに保てるという理屈はよくわかる。

# 動作環境
・Windows10 Home(64bit)

# 手順（概要）
1. VirtualBoxのインストール
2. Vagrantのインストール
3. Git for Windowsのインストール
4. Vagrantファイル(docker+minikube)の入手＆実行
5. 動作確認

# 手順（詳細）
## 1. VirtualBoxのインストール
実際は前の記事でDockerToolBoxインストール時についでインストールされたのですが
VirtualBoxのバージョンアップしたときにインストールしなおした感じに名たのでその様子をUPします。

バージョンアップの案内に記載されているURLをクリック
![コメント 2020-03-21 141817.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/fc62122b-745e-532c-3914-ace7e7a6d42e.png)

リンク先では自動的にダウンロードが始まる。ダウンロードが完了したらexeファイルを起動
![コメント 2020-03-21 141915.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/416adcee-bde2-78d3-b2b1-88f5764b7f0d.png)

インストール開始。[Next]クリック
![コメント 2020-03-21 141928.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/4f05b314-5707-6545-d85b-f3d977f2c642.png)

[Next]クリック
![コメント 2020-03-21 141946.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/3e1031c9-05f8-35aa-530b-f36375de0548.png)

[Next]クリック
![コメント 2020-03-21 141957.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/91cfe21d-fc15-ac16-cc78-4e0736899e8b.png)

[Install]クリック
![コメント 2020-03-21 142138.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/743c17c8-cf08-3c81-a167-51d5884bd4d8.png)

[インストール]クリック
![コメント 2020-03-21 142449.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/294a983e-382a-74ec-d019-4e7d45fdb37f.png)

[Finish]クリック
![コメント 2020-03-21 142508.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/a3b3ffa8-7a86-050e-bd73-ce3d80ea9e9b.png)

## 2. Vagrantインストール
ダウンロードサイト(https://www.vagrantup.com/downloads.html)へ
アクセスして、win10(64bit)のインストーラ入手
![コメント 2020-03-21 144619.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/45c9a253-490d-4dd3-8686-49f92cadbcef.png)

ダウンロードしたインストーラを起動
![コメント 2020-03-21 144718.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/019f8b83-420c-a992-ec47-778a892dbadb.png)

ここで突然windows Defenderが反応するが、落ち着いて[実行]
![コメント 2020-03-21 144749.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/325142d2-0250-15e3-08b9-095022963b0b.png)

[Next]クリック
![コメント 2020-03-21 144819.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/a86c3a94-cfbb-8b39-70ba-690f610cff81.png)

チェックして、[Next]クリック
![コメント 2020-03-21 144847.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/06a17f02-0cd7-190d-1eb5-076a665d1400.png)

[Next]クリック
![コメント 2020-03-21 144904.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/4d878a16-ba73-af56-8a48-11bee1d9775c.png)

[Install]クリック
![コメント 2020-03-21 144921.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/5b00d795-f078-55fc-f691-32d395652409.png)

…で、インストール完了

## 3.Git for Windowsのインストール
ダウンロードサイト(https://git-scm.com/download/win)へアクセスしてダウンロード。
![コメント 2020-03-21 142723.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/b2ef3b54-c213-9ff1-b504-c3de8a7c748a.png)

インストーラを起動
![コメント 2020-03-21 142829.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/36c235ed-54d7-f66c-57a5-bff139c3223b.png)

[Next]クリック
![コメント 2020-03-21 143014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/392f6c5c-ea1c-2b54-c131-7316f3a549d4.png)

[Next]クリック
![コメント 2020-03-21 143110.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/fea5e38f-a891-a9ba-c2f3-6039641e36f5.png)

[Next]クリック
![コメント 2020-03-21 143144.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/356a62f5-9094-9a88-37cc-0059617c97b4.png)

checkout as-is, commit as-is を選択して、[Next]クリック 
![コメント 2020-03-21 143804.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/03ad84c0-178e-d69d-07e9-ee388527a476.png)

[Install]クリック
![コメント 2020-03-21 143206.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/f5b4810f-ddd6-c2b3-2abe-0d96bbf80108.png)

…で、インストール完了

## 4. Vagrantファイル(docker+minikube)の実行
windows検索窓から"git"入力して、"git for windows"起動
![コメント 2020-03-22 221038.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/62550f5a-609c-d163-0c77-566f3f90ca00.png)

githubからdocker+minikubeのvagrantファイルを入手
※このURLは書籍購入した人に公開している感じなのでさすがに隠した。。。
![コメント 2020-03-21 144044.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/2dd225cb-f3c6-eef8-7c21-6b1f404789cd.png)

Vagrantファイルの実行。docker＆minikubeのインストールはこれだけ。さすがvagrant。

```
$ vagrant up
```

![コメント 2020-03-21 165405.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d7f5ad73-d9a3-cc29-4aa1-9bd068d221f9.png)

プロンプトが戻ってきたら、実行環境(=docker+minikubeのインストールされたUbunts)へログイン

```
$ vagrant ssh
```

![コメント 2020-03-21 165401.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/f33c33be-1fc3-0a0c-b333-62c219ebf10b.png)

## 5.動作確認
Dockerのバージョンを確認してみる

```
$ docker version
```

![コメント 2020-03-21 165532.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/080b6ae6-d3db-3da6-fbcb-387039bf4aa3.png)

minikubeを起動する。

```
sudo minikube start
```

![コメント 2020-03-21 165613.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/317afcde-9a05-853b-f5ba-ca464fc7d20f.png)

minikube上のノードの状態とpodの様子を確認。
minikubeという名前のノードが稼働しており、
minikubeにまつわる様々なpodが動作していることが確認できる。

```
$ kubectl get node ←ノードの状態確認
$ kubectl get pod --all-namespeces　←ポッドの状態確認
```

![コメント 2020-03-21 165941.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/3674312c-1b6d-5546-1270-baeb28c2e484.png)

ここまでで、minikubeが動くことが確認できたので、ここからじっくりと
dockerのminikubeの動作がどんなもんか本を読みながら試していこうと思う。