GCE に minikube をインストールする

Kubernetes を学ぶ必要性が出てきたので、GCP の GCE 上に minikube をインストールしていろいろ試す環境を作ってみることにしました。

環境

  • GCP
    • GCE
      • Machine type : e2-medium
      • Zone : us-central1-a
      • Image : centos-7-v20210401
  • OS
    • CenOS 7

minikube をセットアップする

GCE インスタンスを作成する

特別な設定は行わずに、GCE インスタンスを作成します。
環境 に記載した内容で、設定はディフォルトのままです。

前提の環境を整える

minikube を使うために必要な各種ソフトウェアなどをインストールしていきます。
インストールするものは、以下です。

  • conntrack
  • yum-utils
  • device-mapper-persistent-data
  • lvm2
  • docker-ce
  • docker-ce-cli
  • container.io
  • kubectl

こんな感じでインストールしました。

$ sudo yum update -y
$ sudo yum upgrade -y

$ sudo yum install -y conntrack

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install -y docker-ce docker-ce-cli containerd.io
$ sudo systemctl enable docker && sudo systemctl start docker

$ sudo yum install -y kubectl
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

Docker については、自分の個人アカウントでも操作できるようにしておきました。

$ sudo usermod -aG docker $USER

minikube をインストールする

いよいよ minikube をインストールします。

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube
$ sudo cp -i minikube /usr/local/bin/
$ minikube version
minikube version: v1.19.0
commit: 15cede53bdc5fe242228853e737333b09d4336b5

続けて、socat と ebtables もインストールしておきます。

$ sudo yum -y install socat ebtables

また、sudo 時に /usr/local/bin への PATH が通るように設定しておきます。

$ sudo visudo
※88行目
# Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/local/bin:/usr/bin

minikube を起動する

インストールが完了したら、minikube を起動してみましょう。

$ sudo /usr/local/bin/minikube start --vm-driver=none
😄  minikube v1.19.0 on Centos 7.9.2009 (amd64)
✨  Using the none driver based on user configuration
👍  Starting control plane node minikube in cluster minikube
🤹  Running on localhost (CPUs=2, Memory=3788MB, Disk=20268MB) ...
ℹ️  OS release is CentOS Linux 7 (Core)
    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm: 37.40 MiB / 37.40 MiB [-----------] 100.00% 267.53 MiB p/s 339ms
    > kubectl: 38.37 MiB / 38.37 MiB [-----------] 100.00% 185.19 MiB p/s 407ms
    > kubelet: 108.73 MiB / 108.73 MiB [---------] 100.00% 255.18 MiB p/s 626ms

    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🤹  Configuring local host environment ...

❗  The 'none' driver is designed for experts who need to integrate with an existing VM
💡  Most users should use the newer 'docker' driver instead, which does not require root!
📘  For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/

❗  kubectl and minikube configuration will be stored in /root
❗  To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:

    ▪ sudo mv /root/.kube /root/.minikube $HOME
    ▪ sudo chown -R $USER $HOME/.kube $HOME/.minikube

💡  This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

無事に起動はしたようです。

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


今回はここまでということで、停止しておきます。

$ sudo minikube stop

ここから先は、また別でまとめてみようと思います。