RHEL7 での Minikube のインストール

# 前提

以下を参考に実施。
Install Minikube
https://kubernetes.io/docs/tasks/tools/install-minikube/

Hypervisor は VirtualBox を使用。
なお、RHEL7 は VMware Player 上の環境。

#1.Intel-VT対応に変更 (VMware Player 上の作業)

以下を有効にする。

```shell-session
Intel VT-x/EPT または AMD-V/RVI を仮想化
```

#2.VirtualBox のインストール

以下を参考に VirtualBox をインストール。
Download VirtualBox for Linux Hosts
https://www.virtualbox.org/wiki/Linux_Downloads

```shell-session
$ cat <<EOF > /etc/yum.repos.d/virtualbox.repo
[virtualbox]
name=Oracle Linux / RHEL / CentOS-\$releasever / \$basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/\$releasever/\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
EOF

$ yum install -y VirtualBox-5.2
```

インストール時に以下のメッセージが出力される場合がある。

```shell-session
This system is currently not set up to build kernel modules.
Please install the gcc make perl packages from your distribution.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-3.10.0-862.el7.x86_64
This system is currently not set up to build kernel modules.
Please install the gcc make perl packages from your distribution.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-3.10.0-862.el7.x86_64

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.
```

その場合は以下を実施。

```shell-session
$ yum install -y gcc make perl "kernel-devel-$(uname -r)"
$ /sbin/vboxconfig
```

#3.kubectl のインストール
```shell-session
$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
$ yum install -y kubectl
```

#4.minikube コマンドのインストール
```shell-session
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.25.2/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
```

シェルの自動補完もやっておくと便利。

```shell-session
$ yum install bash-completion -y
$ echo "source <(kubectl completion bash)" >> ~/.bashrc
$ echo "source <(minikube completion bash)" >> ~/.bashrc
```

#5.起動
ISO のダウンロードなどで初回は少し時間がかかる。

```shell-session
$ minikube start
Starting local Kubernetes v1.9.4 cluster...
Starting VM...
Downloading Minikube ISO
 142.22 MB / 142.22 MB [============================================] 100.00% 0s
Getting VM IP address...
Moving files into cluster...
Downloading localkube binary
 163.02 MB / 163.02 MB [============================================] 100.00% 0s
 65 B / 65 B [======================================================] 100.00% 0s
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.
```

#6.起動確認
```shell-session
$ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
$ 
$ minikube service list
|-------------|----------------------|-----------------------------|
|  NAMESPACE  |         NAME         |             URL             |
|-------------|----------------------|-----------------------------|
| default     | kubernetes           | No node port                |
| kube-system | kube-dns             | No node port                |
| kube-system | kubernetes-dashboard | http://192.168.99.100:30000 |
|-------------|----------------------|-----------------------------|
```