Ubuntu20にDockerとMinikubeをインストール


コンテナとストレージの関係を整理するべく、まずはDockerとMinikubeで環境を構築。
本当は丸ごとVMに作っておけばいいのですが、オフライン環境のラボでWifiルーターだけが頼りの環境だとVM上のOSにUSBルーター経由でインターネット接続が出来ず、直接サーバー上に入れたり消したりしているので、忘れないようにメモ。

環境
サーバー:Supermicro 1029P
OS:Ubuntu20
KB:Happy Hacking Pro2(関係ない)

1、準備
2、Dockerインストール&non-rootで動くようにする
3、Minikubeインストール

1、準備

まず古いDockerがあったら消さないと、訳が分からなくなります。

$sudo apt-get remove docker docker-engine docker.io containerd runc

クリーンインストール後の場合、まずはUbuntuのアップデートとパッケージ類をインストール

$sudo apt-get update
$sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release \
    openssh-server

2、Dockerインストール

curlでDocker関連を落とす

$curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

設定ごにょごにょ

$echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

インストール前のupdate

$sudo apt-get update

インストール開始

$sudo apt-get install docker-ce docker-ce-cli containerd.io

しばしコーヒーブレイク

動作テスト

$sudo docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
と出たらOK!

このままだとroot権限が必要なので、non-rootで動くようにする

$sudo groupadd docker
$sudo usermod -aG docker $USER
$reboot

再起動後sudo無しで実行して問題なければOK

$docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.

3、Minikubeインストール

以下参照
https://minikube.sigs.k8s.io/docs/start/

curlを使ってごそっと頂いてきてインストール

$curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
$sudo dpkg -i minikube_latest_amd64.deb

起動
$minikube start

次にpodsをダウンロードします。
minikubeコマンドの後にkubectlコマンド。

$minikube kubectl -- get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-74ff55c5b-fhw5g            1/1     Running   0          5m1s
kube-system   etcd-minikube                      1/1     Running   0          5m10s
kube-system   kube-apiserver-minikube            1/1     Running   0          5m10s
kube-system   kube-controller-manager-minikube   1/1     Running   0          5m10s
kube-system   kube-proxy-mpq7s                   1/1     Running   0          5m1s
kube-system   kube-scheduler-minikube            1/1     Running   0          5m10s
kube-system   storage-provisioner                1/1     Running   0          5m15s

直接kubectlでやりたいので、snapでclassicオプションを入れてkubectlをインストール。

$sudo snap install --classic kubectl
$kubectl get po -A

これで、環境は整いました。
ここからPersistentVolumeとかpodとかを作っていきます。
あと、ダッシュボードを出したりすると、周囲にやってる感をアピールできますね!

$minikube dashboard

とりあえずここまで。