1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2でminikube環境を構築して、メモリとCPUを適切にminikube clusterに割り当てるまで。

Last updated at Posted at 2022-06-04

背景

Docker Desktopが商用利用では有償化しました。
そういうがめつい奴使いたくないので個人レベルではminikubeを使っていきたいと思います。
単なる思想の問題です。

そして、Windows上でPod作ろう みたいに成ったときに
Windows上だとHyper-Vが使われますが、中々どうして使いづらい。

管理者権限が必ず必須だったり・・・
ツールのインストールが煩雑だったり・・・
そもそも、Podを建てようとしても建てられないみたいな話もあったり(これはググって出てきた情報なのであんまり信憑性はないけど)
フォルダ共有(Driver)が出来ないとか・・・

という背景があり、WSL2で動かせたらみんな幸せになると思った。

課題

とりあえずWSL2の上で動かすので、Google先生で

WSL2 Windows minikube インストールとかでググってもDocker Desktopで動かすやつしか出てこない。
なんということだ。

というわけで、WSL2にインストールするという目的は一旦忘れて、
素のUbuntuにインストールする方法で、WSL2上に存在するUbuntuにインストールできないか?
と思ったら出来たので備忘録として書いていきます。

改めて、WSL2上のubuntuにminikubeをインストールする方法

これをやっていくだけでできる。先人の知恵ですね。

minikubeクラスタの初期リソース割り当てがショボい

起動時のログ

😄  minikube v1.25.2 on Ubuntu 18.04
✨  Using the docker driver based on existing profile
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🤷  docker "minikube" container is missing, will recreate.
🔥  Creating docker container (CPUs=2, Memory=12800MB) ...
🐳  Preparing Kubernetes v1.23.3 on Docker 20.10.12 ...
    ▪ kubelet.housekeeping-interval=5m
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

メモリは良いとしよう。
CPU、お前はだめだ。
(もしメモリも少なければ、調整できます)

というわけで、最近のマシンは色々メモリを積んでたりコア数も多いのでじゃんじゃんリソースを使うようにしましょう。

WSL2が使う大本のメモリとCPUのコア数を増やす

WSL2のデフォルトでは大した量を割り当てていないので、こっちから修正していきます。
WSL2全体設定(.wslconfig)とディストリに対する個別設定(wsl.conf)がありますが、今回は全体設定の方をいじります。
Microsoft - WSL での詳細設定の構成

例に則り、書いてみる。
powershellで以下のコマンドを叩くと開くので・・・

code "$Env:userprofile\.wslconfig"

これを書く。

.wslconfig
[wsl2]
memory=16GB
processores=16
swap=0

WSL2に対して
 メモリ割り当て16GB(64GB積んでるのでそれの1/4)
 CPUコア数割り当て16(AMD Ryzen 7 1800Xの仮想コア数含めると16コアなので全部割り当てる)
 スワップメモリ割り当て(スワップメモリは割り当てたくないので0にしておく)

こんな感じです。
環境に応じてカッコの中が合わなくなってくるはずなので、自分の環境に合わせて変更してください。

では、WSL2の再起動をしていきます。

> wsl --shutdown
> wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定) <---これを使いたいので
Ubuntu-20.04

> wsl -t Ubuntu <---こうする。

というわけでWSL2の設定はできました。

minikubeの割り当てを変更する

WSL2側のリソースを考えてみます
 CPUは全部使う(ずっとピークが続くわけでもないのでフルで使っても問題なし)
 メモリは少し余らせる(大体4GBあれば良さそう)
  → minikubeに割り当てるのは16GB中12GB

Ubuntuのコンソールに入って、以下のコマンドを叩いていきます

minikube config set cpus 16
minikube config set memory 12GB
minikube config set vm-driver docker
minikube stop&& minikube delete&& minikube start

※ついでに、vm-driverも設定しました。

起動している所

✋  Stopping node "minikube"  ...
🛑  Powering off "minikube" via SSH ...
🛑  1 node stopped.
🔥  Deleting "minikube" in docker ...
🔥  Deleting container "minikube" ...
🔥  Removing /home/segfo/.minikube/machines/minikube ...
💀  Removed all traces of the "minikube" cluster.
😄  minikube v1.25.2 on Ubuntu 18.04
✨  Using the docker driver based on user configuration
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🔥  Creating docker container (CPUs=16, Memory=12288MB) ... <=== これ!
🐳  Preparing Kubernetes v1.23.3 on Docker 20.10.12 ...
    ▪ kubelet.housekeeping-interval=5m
    ▪ 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: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

これでめでたくリソースをフル活用できるminikube環境が構築できました。
おわり

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?