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

構築したVirutalBox上のXubuntuにminikubeをインストールします。

minikube インストール

ドキュメント:
https://minikube.sigs.k8s.io/docs/start/

以下のコマンドでminikubeをインストールします。

1
2
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

続いてminikubeを実行します。

1
minikube start --driver=docker

しかし、以下のエラーが出力されると思います。

1
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied

現在のユーザーをdockerグループに追加します。

1
sudo usermod -aG docker $USER

OS再起動します。

OS再起動後、もう一度実行します。今回はエラーにならないはずです。

1
minikube start --driver=docker

kubectlインストール

続いてkubectlをインストールします。k8sを使うためのコマンドです。

ドキュメント:
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/

1
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
1
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

インストールされたことを確認します。

1
kubectl version --client

kubectxインストール

続いてkubecxtをインストールします。コンテキストやネームスペースの切り替えが便利になります。
https://github.com/ahmetb/kubectx

/etc/apt/sources.listを開いて以下を最下行に追加します。

1
deb [trusted=yes] http://ftp.de.debian.org/debian buster main
1
2
sudo apt update
sudo apt install kubectx

minikubeを使ってみる

すべてのネームスペースのpodを表示します。

1
kubectl get pod -A

以下のコマンドを実行します。k8s.gcr.io/echoserver:1.4のDockerイメージを使ってアプリケーションを実行します。
おそらくポート8080でLISTENしています。

1
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4

続いてクラスタ外部に公開するためのNodePortサービスを作ります。

1
kubectl expose deployment hello-minikube --type=NodePort --port=8080

実行しているサービスを取得します。

1
kubectl get service

以下のような結果が返ってきます。
hello-minikubeサービスはポート30097でクラスタ外部に公開されています。

1
2
3
NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hello-minikube NodePort 10.109.22.11 <none> 8080:30097/TCP 10m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 83m

ノードのIPアドレスを取得します。

1
minikube ip

例:

1
192.168.49.2

ブラウザで、http://<IP ADDRESS>:<PORT>にアクセスしてみてください。今回の場合はhttp://192.168.49.2:30097です。
ここに表示される結果はhello-minikubepodの実行結果です。ブラウザからhello-minikubeサービスを経由してアクセスしたことになります。

後片付け

クラスタをすべて削除します。

1
minikube delete --all