Kubernetes を学ぶ必要性が出てきたので、GCP の GCE 上に minikube をインストールしていろいろ試す環境を作ってみることにしました。
環境
minikube をセットアップする
GCE インスタンスを作成する
特別な設定は行わずに、GCE インスタンスを作成します。
環境 に記載した内容で、設定はディフォルトのままです。
前提の環境を整える
minikube を使うために必要な各種ソフトウェアなどをインストールしていきます。
インストールするものは、以下です。
こんな感じでインストールしました。
$ 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
ここから先は、また別でまとめてみようと思います。