CentOS7でMinikubeを動かす

CentOS7にMinikubeをインストールしてみました。

Minikubeとは

Minikubeは、ローカル環境で簡単にKubernetesを試すことができるツールです。

Docker上で、シングルノードのKubernetesクラスタを実行することができます。

やること

CentOS7にMinikubeをインストールします。

次の3つをインストールしていきます。

  • kubectl
  • Docker
  • Minikube

インストール手順

流れは次の通りです。

  1. kubectlをインストールする
  2. Dockerをインストールする
  3. Minikubeをインストールする

kubectlをインストール

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"

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

chmod +x ./kubectl

kubectlバイナリをPATHに通す

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

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

kubectl version --client

Dockerをインストールする

必要なパッケージをインストールする

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

インストール可能なバージョンをみる

yum list docker-ce --showduplicates | sort -r

バージョンを指定して、インストールする

sudo yum install -y docker-ce-18.06.3.ce-3.el7

Dockerデーモンを起動する

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

一般ユーザでDockerを実行できるようにする

$USER にユーザ名を指定します。一般ユーザでDockerコマンドが使えないと、minikubeのインストールに失敗します。

getent group | grep docker
sudo usermod -aG docker $USER
getent group | grep docker

dockerグループが追加されていることを確認する

id $USER
...,994(docker)

設定を反映させるため、ここでログアウト、または再起動します。

その後 sudo を使わずにdocker info ができるか確認しておきましょう。

Minikubeをインストールする

Minikubeバイナリをダウンロードする

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

Minikubeバイナリを実行可能にする

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

Minikubeを起動する

minikube start --driver=docker
😄  minikube v1.22.0 on Centos 7.9.2009 (amd64)
✨  Using the docker driver based on user configuration
💨  For improved Docker performance, Upgrade Docker to a newer version (Minimum recommended version is 18.09.0)
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
💾  Downloading Kubernetes v1.21.2 preload ...
    > preloaded-images-k8s-v11-v1...: 502.14 MiB / 502.14 MiB  100.00% 40.13 Mi
    > gcr.io/k8s-minikube/kicbase...: 361.09 MiB / 361.09 MiB  100.00% 10.77 Mi
🔥  Creating docker container (CPUs=2, Memory=2200MB) ...
🐳  Preparing Kubernetes v1.21.2 on Docker 20.10.7 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  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が起動したことを確認する

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

ここまでで、minikubeの起動までできました。