Thursday, November 27, 2025

 

Minikube : Install

 

Install Minikube to configure Kubernetes Cluster on single node.

[1]

Install a Hypervisor first that is supported by Minikube.
On this example, Install KVM.
For other Hypervisors, it's possible to use VirtualBox, VMware Fusion, HyperKit.

[2]Install Minikube and other required tools.
root@dlp:~# 
apt -y install kubectl
root@dlp:~# 
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube

root@dlp:~# 
wget https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2

root@dlp:~# 
chmod 755 minikube docker-machine-driver-kvm2

root@dlp:~# 
mv minikube docker-machine-driver-kvm2 /usr/local/bin/
root@dlp:~# 
minikube version

minikube version: v1.36.0
commit: f8f52f5de11fc6ad8244afac475e1d0f96841df1-dirty

# if use by common users, add them to [libvirt] group

root@dlp:~# 
usermod -aG libvirt debian

# if default virtual network is not running, start it

root@dlp:~# 
virsh net-start default

Network default started
[3]Start Minikube with a common user.
debian@dlp:~$ 
minikube start --vm-driver=kvm2

* minikube v1.36.0 on Debian 13.0 (kvm/amd64)
* Using the kvm2 driver based on user configuration
* Downloading VM boot image ...
    > minikube-v1.36.0-amd64.iso....:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > minikube-v1.36.0-amd64.iso:  360.83 MiB / 360.83 MiB  100.00% 32.53 MiB p
* Starting "minikube" primary control-plane node in "minikube" cluster
* Downloading Kubernetes v1.33.1 preload ...
    > preloaded-images-k8s-v18-v1...:  347.04 MiB / 347.04 MiB  100.00% 32.82 M
* Creating kvm2 VM (CPUs=2, Memory=3900MB, Disk=20000MB) ...
! Image was not built for the current minikube version. To resolve this you can delete and recreate your minikube cluster using the latest images. Expected minikube version: v1.35.0 -> Actual minikube version: v1.36.0
* Preparing Kubernetes v1.33.1 on Docker 28.0.4 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring bridge CNI (Container Networking Interface) ...
* 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

# show status

debian@dlp:~$ 
minikube status

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

debian@dlp:~$ 
minikube service list

|-------------|------------|--------------|-----|
|  NAMESPACE  |    NAME    | TARGET PORT  | URL |
|-------------|------------|--------------|-----|
| default     | kubernetes | No node port |
| kube-system | kube-dns   | No node port |
|-------------|------------|--------------|-----|

debian@dlp:~$ 
minikube docker-env

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.39.19:2376"
export DOCKER_CERT_PATH="/home/debian/.minikube/certs"
export MINIKUBE_EXISTING_DOCKER_HOST="unix:///run/user/1000/podman/podman.sock"
export MINIKUBE_ACTIVE_DOCKERD="minikube"

# To point your shell to minikube's docker-daemon, run:
# eval $(minikube -p minikube docker-env)

debian@dlp:~$ 
kubectl cluster-info

Kubernetes control plane is running at https://192.168.39.19:8443
CoreDNS is running at https://192.168.39.19:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

debian@dlp:~$ 
kubectl get nodes

NAME       STATUS   ROLES           AGE    VERSION
minikube   Ready    control-plane   3m4s   v1.33.1

# a VM [minikube] is just running

debian@dlp:~$ 
sudo virsh list

 Id   Name       State
--------------------------
 1    minikube   running

# possible to access with SSH to the VM

debian@dlp:~$ 
minikube ssh

                         _             _
            _         _ ( )           ( )
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

hostname

minikube
docker ps

CONTAINER ID   IMAGE                        COMMAND                  CREATED         STATUS         PORTS     NAMES
1fb854ccf3e3   6e38f40d628d                 "/storage-provisioner"   3 minutes ago   Up 3 minutes             k8s_storage-provisioner_storage-provisioner_kube-system_1f9ce082-123f-4d83-a799-1db8f1a9dc83_1
b70036383183   b79c189b052c                 "/usr/local/bin/kube…"   4 minutes ago   Up 4 minutes             k8s_kube-proxy_kube-proxy-skjtp_kube-system_264c4274-48c0-44ab-838d-804d02b89989_0
4ad81c54d533   1cf5f116067c                 "/coredns -conf /etc…"   4 minutes ago   Up 4 minutes             k8s_coredns_coredns-674b8bbfcf-nx5r2_kube-system_79de450f-4223-48e3-9bea-7678c9b58b9e_0
7bd8c599133a   registry.k8s.io/pause:3.10   "/pause"                 4 minutes ago   Up 4 minutes             k8s_POD_kube-proxy-skjtp_kube-system_264c4274-48c0-44ab-838d-804d02b89989_0
c3c138320665   registry.k8s.io/pause:3.10   "/pause"                 4 minutes ago   Up 4 minutes             k8s_POD_coredns-674b8bbfcf-nx5r2_kube-system_79de450f-4223-48e3-9bea-7678c9b58b9e_0
2080ea607923   registry.k8s.io/pause:3.10   "/pause"                 4 minutes ago   Up 4 minutes             k8s_POD_storage-provisioner_kube-system_1f9ce082-123f-4d83-a799-1db8f1a9dc83_0
3e55f86f67ae   499038711c08                 "etcd --advertise-cl…"   4 minutes ago   Up 4 minutes             k8s_etcd_etcd-minikube_kube-system_7b250e0a686170d8c0a2abc2bca59986_0
560fd8629ab4   c6ab243b29f8                 "kube-apiserver --ad…"   4 minutes ago   Up 4 minutes             k8s_kube-apiserver_kube-apiserver-minikube_kube-system_1dcc96e65dcbf28adcc92af5a9537add_0
1c0777c41b3f   398c985c0d95                 "kube-scheduler --au…"   4 minutes ago   Up 4 minutes             k8s_kube-scheduler_kube-scheduler-minikube_kube-system_feee622ba49882ef945e2406d3ba86df_0
9a3f96e50628   ef43894fa110                 "kube-controller-man…"   4 minutes ago   Up 4 minutes             k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_cff5c8af7c45f076a2a20aa12333d5a0_0
08de1a99a1bf   registry.k8s.io/pause:3.10   "/pause"                 4 minutes ago   Up 4 minutes             k8s_POD_etcd-minikube_kube-system_7b250e0a686170d8c0a2abc2bca59986_0
b64dfadc7760   registry.k8s.io/pause:3.10   "/pause"                 4 minutes ago   Up 4 minutes             k8s_POD_kube-scheduler-minikube_kube-system_feee622ba49882ef945e2406d3ba86df_0
0704041895e3   registry.k8s.io/pause:3.10   "/pause"                 4 minutes ago   Up 4 minutes             k8s_POD_kube-controller-manager-minikube_kube-system_cff5c8af7c45f076a2a20aa12333d5a0_0
60317826f826   registry.k8s.io/pause:3.10   "/pause"                 4 minutes ago   Up 4 minutes             k8s_POD_kube-apiserver-minikube_kube-system_1dcc96e65dcbf28adcc92af5a9537add_0

exit
# stop minikube

debian@dlp:~$ 
minikube stop

* Stopping "minikube" in kvm2 ...
* Node "minikube" stopped.
# start minikube

debian@dlp:~$ 
minikube start

* minikube v1.36.0 on Debian 13.0 (kvm/amd64)
* Using the kvm2 driver based on existing profile
* Starting "minikube" primary control-plane node in "minikube" cluster
* Restarting existing kvm2 VM for "minikube" ...
! Image was not built for the current minikube version. To resolve this you can delete and recreate your minikube cluster using the latest images. Expected minikube version: v1.35.0 -> Actual minikube version: v1.36.0
* Preparing Kubernetes v1.33.1 on Docker 28.0.4 ...
* Configuring bridge CNI (Container Networking Interface) ...
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

# remove minikube

debian@dlp:~$ 
minikube delete

Deleting local Kubernetes cluster...
Machine deleted.
debian@dlp:~$ 
sudo virsh list --all

 Id   Name       State
--------------------------

No comments:

Post a Comment