Ubuntu 24.04 に MicroK8S をインストール

 
Minikube から MicroK8S に乗り換えたのでメモ。

Snap でインストールする。

sudo apt update -y
sudo apt upgrade -y
sudo snap install microk8s --classic

ユーザーを microk8s グループに所属させる。

sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
newgrp microk8s
microk8s status --wait-ready

必要なアドオンを有効化しておく。

microk8s enable dns
microk8s enable dashboard
microk8s enable hostpath-storage
microk8s enable ingress
microk8s enable registry

一旦動作確認。ノードとポッド一覧を見る。

kubectl get no
kubectl get po -A

kubeconfig を生成する。
あとは kubectl を “microk8s kubectl” のエイリアスにしておく。

microk8s config > ~/.kube/config
echo "alias kubectl='microk8s kubectl'" >> ~/.bashrc
source ~/.bashrc

MicorK8S の内蔵レジストリを使うので、SSL なしの in-secure registry の設定が必要。
Docker の daemon.json 設定を変えておく。

/* /etc/docker/daemon.js */
{
    "insecure-registries" : ["192.168.122.64:32000"]
}

daemon.json をリロードする。

sudo systemctl daemon-reload
sudo systemctl restart docker

MicroK8S の containerd にも内蔵レジストリを使う設定をしておく。
ホスト名:ポート番号のディレクトリを作って、そこにSSL証明書を無視する設定を記入。

sudo mkdir -p /var/snap/microk8s/current/args/certs.d/192.168.122.64:32000
sudo tee /var/snap/microk8s/current/args/certs.d/192.168.122.64:32000/hosts.toml << EOF
server = "http://192.168.122.64:32000"

[host."http://192.168.122.64:32000"]
  capabilities = ["pull", "resolve", "push"]
  skip_verify = true
EOF

そしたら microk8s を再起動。

microk8s stop
microk8s start

このあと、一通り docker container を新しいレジストリに push したら乗り換え完了。