Ubuntu20.04.1 LTSにminikubeをインストールする

# 概要

本書ではUbuntu20.04.1 LTSにminikubeのインストールを実施します。

## 前提条件
* minikubeの最小動作環境である、CPU2コア以上、メモリ2GB以上、空き容量20GB以上を用意したUbuntuで実施してください。
* VirtualBox上にインストールしたUbuntu20.04.1 LTSを使用しました。

```
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
(中略)
```

## 1. kubectlのインストール

1. curlをインストールする。

    ```
    $ sudo apt install curl
    ```

2. kubectlをダウンロードする。

    ```
    $ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
    ```

3. kubectlバイナリを実行可能にする。

    ```
    $ chmod +x ./kubectl
    ```

4. kubectlバイナリをPATHに通す。

    ```
    $ sudo mv ./kubectl /usr/local/bin/kubectl
    ```

5. kubectlがインストールされているか、バージョンを確認する。

    ```
    $ kubectl version --client
      Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", 
      GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", 
      BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", 
      Platform:"linux/amd64"}
    ```

## 2. dockerのインストール

1. パッケージデータベースを更新する。

    ```
    $ sudo apt update
    ```

2. dockerに必要なパッケージをインストールする。

    ```
    $ sudo apt install apt-transport-https ca-certificates software-properties-common
    ```

3. dockerリポジトリを追加する。

    ```
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    ```

4. dockerリポジトリをaptに追加する。

    ```
    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
    ```

5. パッケージデータベースを更新する。

    ```
    $ sudo apt update
    ```

6. dockerリポジトリが適用されたことを確認する。

    ```
    $ apt-cache policy docker-ce
      docker-ce:
      インストールされているバージョン: (なし)
      候補:               5:20.10.0~3-0~ubuntu-focal
      バージョンテーブル:
         5:20.10.0~3-0~ubuntu-focal 500
            500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
      (中略)
    ```

7. dockerをインストールする。

    ```
    $ sudo apt install docker-ce
    ```

8. dockerが起動していることを確認する。

    ```
    $ systemctl status docker
      ● docker.service - Docker Application Container Engine
           Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
           Active: active (running) since Mon 2020-12-14 23:39:24 JST; 55s ago
     TriggeredBy: ● docker.socket
     (中略)
    ```

9. dockerがインストールされているか、バージョンを確認する。

    ```
    $ docker version
      Client: Docker Engine - Community
      Version:           20.10.0
      (中略)
    ```

10. dockerグループを作成する。(既に存在している場合があります)

    ```
    $ sudo groupadd docker
      groupadd: グループ 'docker' は既に存在します
    ```

11. ユーザーをdockerグループに追加する。

    ```
    $ sudo usermod -aG docker [ユーザー名]
    ```

12. ログアウトする。

13. ログイン後、dockerを再起動する。

    ```
    $ sudo systemctl restart docker
    ```

## 3. minikubeのインストール

1. minikubeバイナリをダウンロードする。

    ```
        $ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
          > && chmod +x minikube
    ```

2. minikubeバイナリを実行可能にする。

    ```
    $ sudo mkdir -p /usr/local/bin/
    $ sudo install minikube /usr/local/bin/
    ```

3. minikubeを起動する。

    ```
    $ minikube start --driver=docker
      😄  Ubuntu 20.04 (vbox/amd64) 上の minikube v1.15.1
      ✨  設定を元に、 docker ドライバを使用します
      👍  コントロールプレーンのノード minikube を minikube 上で起動しています
      🚜  Pulling base image ...
      💾  Kubernetes v1.19.4 のダウンロードの準備をしています
      > preloaded-images-k8s-v6-v1.19.4-docker-overlay2-amd64.tar.lz4: 486.35 MiB
      🔥  docker container (CPUs=2, Memory=2200MB) を作成しています...
      🐳  Docker 19.03.13 で Kubernetes v1.19.4 を準備しています...
      🔎  Kubernetes コンポーネントを検証しています...
      🌟  有効なアドオン: storage-provisioner, default-storageclass
      🏄  Done! kubectl is now configured to use "minikube" cluster and "default" 
      namespace by default
    ```

4. minikubeが起動したことを確認する。

    ```
    $ minikube status
      minikube
      type: Control Plane
      host: Running
      kubelet: Running
      apiserver: Running
      kubeconfig: Configured
    ```

## 最後に

Ubuntu20.04.1 LTSにminikubeをインストールすることでkubernetesの勉強環境が作成できます。