起動
# 例: 4CPU / 6GB、docker driver
minikube start --driver=docker --container-runtime=containerd \
--cpus=4 --memory=6g --disk-size=20g
休止(最速の一時停止)
minikube pause # 全Podを一時停止(数秒)
minikube unpause # すぐ復帰
- 超短時間の休憩や、すぐ再開したい時に最適。CPU/メモリ消費がグッと下がります。
停止(安全に止めて、次回すぐ再開)
minikube stop # ノード/コントロールプレーン停止(状態とPVは保持)
minikube start # 再開(前回設定を引き継ぐ)
- 開発を一旦終える時は stop が基本。データ(PV)や設定は残ります。
完全削除(環境まるごと掃除)
# プロファイルを指定(デフォルトなら -p 省略可)
minikube delete -p minikube
- 全て消えます(クラスタ、コントロールプレーン、作成済みのPV/イメージも原則削除)。
- まっさらでやり直したい時だけ使うのがおすすめ。
アドオンや周辺プロセスのオフ
# 使っていないアドオンは切って軽量化
minikube addons list
minikube addons disable ingress
minikube addons disable metrics-server
minikube tunnel / minikube mount の終了
- 実行中ターミナルで Ctrl+C
- 背景で残ってしまった場合:
pkill -f "minikube tunnel" pkill -f "minikube mount"
さらに軽くしたい時(WSL2 ならでは)
- Docker Engine 自体を止める(minikube stop 後)
sudo systemctl stop docker # 再開時 sudo systemctl start docker - WSLごとメモリ解放(Windows PowerShell)
wsl --shutdown※ すべての WSL ディストリが終了します。再度Ubuntuを起動して作業再開。
プロファイル運用(複数クラスタを使う場合)
minikube profile list
minikube stop -p dev
minikube delete -p dev
minikube start -p dev --driver=docker --cpus=4 --memory=6g
次回起動を軽くするコツ
- よく使うサイズを事前設定:
minikube config set memory 4096 minikube config set cpus 2 - 使う時だけ Ingress を有効化し、終わったら無効化。
実運用のおすすめフロー
- 作業開始 →
minikube start … - 短い休憩 →
minikube pause(or しっかり終えるならminikube stop) - 再開 →
minikube unpause/minikube start - 今日は完全終了 →
minikube stop→(必要なら)sudo systemctl stop docker→(さらに解放したければ)Windowsでwsl --shutdown
WSL2 上の Ubuntu に minikube を入れて動かす最短手順です。コマンドは全部「WSL2 の Ubuntu ターミナル」で実行してください。
手順
0) 前提チェック(WSL2 + systemd)
- Windows 側 PowerShell:
wsl --statusでDefault Version: 2になっていればOK。 - Ubuntu 側で systemd を有効化(Docker Engine を楽に動かすため)
sudo nano /etc/wsl.confこんな内容にして保存:[boot] systemd=trueその後、Windows PowerShell で:wsl --shutdown→ Ubuntu を起動し直す。
確認:systemctl --version
1) Docker Engine(Desktop ではなく、軽量な本体だけ)
すでに Docker Engine が入っていれば この章はスキップ。
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker
# 動作確認
docker info
2) kubectl
(minikube 経由で使う方法もありますが、単体で入れておくと便利)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
3) minikube 本体
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube version
4) クラスタ起動(Docker driver を使用)
WSL2 では仮想化ドライバより docker ドライバが軽量・安定です。
# CPU/MEM はお好みで(例は 4CPU / 6GB)
minikube start --driver=docker --container-runtime=containerd \
--cpus=4 --memory=6g --disk-size=20g
確認:
minikube status
kubectl get nodes
5) よく使うアドオン
# メトリクス
minikube addons enable metrics-server
# Ingress(Nginx)
minikube addons enable ingress
- LoadBalancer を使う場合は、別端末で
minikube tunnelを実行(終了するまで前面で動きます)。 - サービスURL確認:
minikube service <svc名> --url
6) 永続ボリュームの注意(ChromaDB 用)
- minikube(docker driver)はデフォルトで 標準StorageClass を持ち、
PersistentVolumeClaimがそのまま使えます(開発中はこれで十分)。 hostPathを使うとパスは minikubeノード(=Dockerコンテナ)内になります。WSLのディレクトリを直接使いたい場合は、開発時だけminikube mount $HOME/data:/mnt/dataのようにマウントできます(別端末で起動)。
よくあるハマりどころ
- docker グループに入っていない →
permission denied
→usermod -aG docker $USER→newgrp docker - systemd 無効で Docker が起動していない
→/etc/wsl.confにsystemd=true、wsl --shutdown後に再起動 - リソース不足(起動が遅い/失敗)
→minikube startの--cpus/--memoryを増やす - Ingress にアクセスできない
→minikube addons enable ingress済みか、minikube tunnelを別端末で実行
起動と終了
nohup kubectl -n ingress-nginx port-forward svc/ingress-nginx-controller 8080:80 \
> ~/pf_ingress.log 2>&1 & echo $! > ~/.pf_ingress.pid
# 停止
kill $(cat ~/.pf_ingress.pid) 2>/dev/null || pkill -f 'port-forward.*ingress-nginx-controller.*8080:80'
コメントを残す