Minikubeを何のオプションも設定せずに起動するとシングルクラスターとして環境が構築されます。
tworks55@LAPTOP-A1R0H57F:~$ kubectl get node NAME STATUS ROLES AGE VERSION minikube Ready control-plane,master 10d v1.23.3
複数ノードを使って動作確認をしたい場合もあると思いますので、今回は複数ノードでminikubeを作り直します。
複数ノードでminikubeを起動
既にノードが作成されている場合は、起動オプションでノード数を設定しても無視されます。
The cluster minikube already exists which means the --nodes parameter will be ignored. Use "minikube node add" to add nodes to an existing cluster.
tworks55@LAPTOP-A1R0H57F:~$ minikube start --nodes 3 😄 minikube v1.25.2 on Ubuntu 20.04 ✨ Using the docker driver based on existing profile 👍 Starting control plane node minikube in cluster minikube 🚜 Pulling base image ... 🔄 Restarting existing docker container for "minikube" ... 🐳 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 ▪ Using image k8s.gcr.io/metrics-server/metrics-server:v0.4.2 ▪ Using image kubernetesui/dashboard:v2.3.1 ▪ Using image kubernetesui/metrics-scraper:v1.0.7 🌟 Enabled addons: storage-provisioner, default-storageclass, metrics-server, dashboard ❗ The cluster minikube already exists which means the --nodes parameter will be ignored. Use "minikube node add" to add nodes to an existing cluster. 💡 kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A' 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
既にある環境を削除しても良い場合は、以下のコマンドで削除してからminikubeを再起動します。ノード追加するケースは後程試します。
tworks55@LAPTOP-A1R0H57F:~$ minikube delete 🔥 Deleting "minikube" in docker ... 🔥 Deleting container "minikube" ... 🔥 Removing /home/tworks55/.minikube/machines/minikube ... 💀 Removed all traces of the "minikube" cluster.
3つのノードでminikubeを立ち上げます。
tworks55@LAPTOP-A1R0H57F:~$ minikube start --nodes 3 😄 minikube v1.25.2 on Ubuntu 20.04 ✨ Automatically selected the docker driver 👍 Starting control plane node minikube in cluster minikube 🚜 Pulling base image ... 🔥 Creating docker container (CPUs=2, Memory=2200MB) ... 🐳 Preparing Kubernetes v1.23.3 on Docker 20.10.12 ... ▪ kubelet.housekeeping-interval=5m ▪ kubelet.cni-conf-dir=/etc/cni/net.mk ▪ Generating certificates and keys ... ▪ Booting up control plane ... ▪ Configuring RBAC rules ... 🔗 Configuring CNI (Container Networking Interface) ... 🔎 Verifying Kubernetes components... ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5 🌟 Enabled addons: default-storageclass, storage-provisioner 👍 Starting worker node minikube-m02 in cluster minikube 🚜 Pulling base image ... 🔥 Creating docker container (CPUs=2, Memory=2200MB) ... 🌐 Found network options: ▪ NO_PROXY=192.168.49.2 🐳 Preparing Kubernetes v1.23.3 on Docker 20.10.12 ... ▪ env NO_PROXY=192.168.49.2 🔎 Verifying Kubernetes components... 👍 Starting worker node minikube-m03 in cluster minikube 🚜 Pulling base image ... 🔥 Creating docker container (CPUs=2, Memory=2200MB) ... 🌐 Found network options: ▪ NO_PROXY=192.168.49.2,192.168.49.3 🐳 Preparing Kubernetes v1.23.3 on Docker 20.10.12 ... ▪ env NO_PROXY=192.168.49.2 ▪ env NO_PROXY=192.168.49.2,192.168.49.3 🔎 Verifying Kubernetes components... 💡 kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A' 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default tworks55@LAPTOP-A1R0H57F:~$ kubectl get node NAME STATUS ROLES AGE VERSION minikube Ready control-plane,master 108s v1.23.3 minikube-m02 Ready <none> 79s v1.23.3 minikube-m03 Ready <none> 38s v1.23.3
ノード追加
試しに4つ目のノードをminikube-m04として追加します。
tworks55@LAPTOP-A1R0H57F:~$ minikube node add minikube-m04 😄 Adding node m04 to cluster minikube 👍 Starting worker node minikube-m04 in cluster minikube 🚜 Pulling base image ... 🔥 Creating docker container (CPUs=2, Memory=2200MB) ... 🐳 Preparing Kubernetes v1.23.3 on Docker 20.10.12 ... 🔎 Verifying Kubernetes components... 🏄 Successfully added m04 to minikube! tworks55@LAPTOP-A1R0H57F:~$ kubectl get node NAME STATUS ROLES AGE VERSION minikube Ready control-plane,master 9m16s v1.23.3 minikube-m02 Ready <none> 8m47s v1.23.3 minikube-m03 Ready <none> 8m6s v1.23.3 minikube-m04 Ready <none> 37s v1.23.3
簡単に追加できますね。
ノード削除
とりあえず4つも無くて良いのでminikube-m04を削除します。
tworks55@LAPTOP-A1R0H57F:~$ minikube node delete minikube-m04 🔥 Deleting node minikube-m04 from cluster minikube ✋ Stopping node "minikube-m04" ... 🛑 Powering off "minikube-m04" via SSH ... 🔥 Deleting "minikube-m04" in docker ... 💀 Node minikube-m04 was successfully deleted. tworks55@LAPTOP-A1R0H57F:~$ kubectl get node NAME STATUS ROLES AGE VERSION minikube Ready control-plane,master 10m v1.23.3 minikube-m02 Ready <none> 9m55s v1.23.3 minikube-m03 Ready <none> 9m14s v1.23.3
これでminikube環境でもTaintとTolerationの設定を試すことができますね。