CentOS Stream 10
Sponsored Link

Minikube : Install2025/01/22

 

Install Minikube to configure Kubernetes Cluster on single node.

[1]

Install a Hypervisor that is supported by Minikube.
On this example, Install KVM like here of [1] for it.

[2]

Install Snappy, refer to here of [1].

[3] Install Minikube and other required tools.
# install kubectl

[root@dlp ~]#
snap install kubectl --classic

kubectl 1.31.5 from Canonical✓ installed
[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.35.0
commit: dd5d320e41b5451cdf3c01891bc4e13d189586ed-dirty
[4] Add users who use Minikube to [libvirt] group.
[root@dlp ~]#
usermod -aG libvirt cent

[5] Start Minikube with a user who are in [libvirt] group.
[cent@dlp ~]$
minikube start --vm-driver=kvm2

* minikube v1.35.0 on Centos 10 (kvm/amd64)
* Using the kvm2 driver based on user configuration
* Downloading VM boot image ...
    > minikube-v1.35.0-amd64.iso....:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > minikube-v1.35.0-amd64.iso:  345.38 MiB / 345.38 MiB  100.00% 34.16 MiB p
* Starting "minikube" primary control-plane node in "minikube" cluster
* Downloading Kubernetes v1.32.0 preload ...
    > preloaded-images-k8s-v18-v1...:  333.57 MiB / 333.57 MiB  100.00% 36.77 M
* Creating kvm2 VM (CPUs=2, Memory=3900MB, Disk=20000MB) ...- [  555.658170] tun: Universal TUN/TAP device driver, 1.6
* Preparing Kubernetes v1.32.0 on Docker 27.4.0 ...
  - 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: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

# show status

[cent@dlp ~]$
minikube status

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

ubuntu@dlp:~$
minikube service list

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

[cent@dlp ~]$
minikube docker-env

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.39.150:2376"
export DOCKER_CERT_PATH="/home/cent/.minikube/certs"
export MINIKUBE_ACTIVE_DOCKERD="minikube"

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

[cent@dlp ~]$
kubectl cluster-info

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

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

[cent@dlp ~]$
kubectl get nodes

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   2m27s   v1.32.0

# possible to access with SSH to the VM

[cent@dlp ~]$
minikube ssh

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

$
hostname

minikube
$
docker ps

CONTAINER ID   IMAGE                        COMMAND                  CREATED         STATUS         PORTS     NAMES
0cb028c1ba49   c69fa2e9cbf5                 "/coredns -conf /etc…"   2 minutes ago   Up 2 minutes             k8s_coredns_coredns-668d6bf9bc-29lrm_kube-system_84a09d9a-b0f9-4e25-a2fb-beccd03eb0c0_0
9cd527bad825   registry.k8s.io/pause:3.10   "/pause"                 2 minutes ago   Up 2 minutes             k8s_POD_coredns-668d6bf9bc-29lrm_kube-system_84a09d9a-b0f9-4e25-a2fb-beccd03eb0c0_0
bdfbc25d9dfe   6e38f40d628d                 "/storage-provisioner"   2 minutes ago   Up 2 minutes             k8s_storage-provisioner_storage-provisioner_kube-system_a1409d01-29b1-47a5-a110-a8c5814372ce_0
4241a6fef1a2   registry.k8s.io/pause:3.10   "/pause"                 2 minutes ago   Up 2 minutes             k8s_POD_storage-provisioner_kube-system_a1409d01-29b1-47a5-a110-a8c5814372ce_0
35506c62b745   040f9f8aac8c                 "/usr/local/bin/kube…"   2 minutes ago   Up 2 minutes             k8s_kube-proxy_kube-proxy-g4vlv_kube-system_bf4713be-2282-45a8-b784-118759fd5d4d_0
e04b906b8b28   registry.k8s.io/pause:3.10   "/pause"                 2 minutes ago   Up 2 minutes             k8s_POD_kube-proxy-g4vlv_kube-system_bf4713be-2282-45a8-b784-118759fd5d4d_0
081a645a3383   8cab3d2a8bd0                 "kube-controller-man…"   3 minutes ago   Up 3 minutes             k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_91d97157d77c4e4e449ef2f1b23a7940_0
72b74c50884d   c2e17b8d0f4a                 "kube-apiserver --ad…"   3 minutes ago   Up 3 minutes             k8s_kube-apiserver_kube-apiserver-minikube_kube-system_dc0ae44c3c539da675d2293825544271_0
61c9d3a1c1a7   a389e107f4ff                 "kube-scheduler --au…"   3 minutes ago   Up 3 minutes             k8s_kube-scheduler_kube-scheduler-minikube_kube-system_d14ce008bee3a1f3bd7cf547688f9dfe_0
89a801312964   a9e7e6b294ba                 "etcd --advertise-cl…"   3 minutes ago   Up 3 minutes             k8s_etcd_etcd-minikube_kube-system_015f05895bd706e28a7ccbc1477e363b_0
fa0f7fdb39d4   registry.k8s.io/pause:3.10   "/pause"                 3 minutes ago   Up 3 minutes             k8s_POD_kube-scheduler-minikube_kube-system_d14ce008bee3a1f3bd7cf547688f9dfe_0
9728db292fef   registry.k8s.io/pause:3.10   "/pause"                 3 minutes ago   Up 3 minutes             k8s_POD_kube-controller-manager-minikube_kube-system_91d97157d77c4e4e449ef2f1b23a7940_0
0ee8418316d9   registry.k8s.io/pause:3.10   "/pause"                 3 minutes ago   Up 3 minutes             k8s_POD_kube-apiserver-minikube_kube-system_dc0ae44c3c539da675d2293825544271_0
e141f4f8de3b   registry.k8s.io/pause:3.10   "/pause"                 3 minutes ago   Up 3 minutes             k8s_POD_etcd-minikube_kube-system_015f05895bd706e28a7ccbc1477e363b_0

$
exit
# stop minikube

[cent@dlp ~]$
minikube stop

* Stopping node "minikube" ...
* 1 nodes stopped.
# start minikube

[cent@dlp ~]$
minikube start

* minikube v1.35.0 on Centos 10 (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" ...
* Preparing Kubernetes v1.32.0 on Docker 27.4.0 ...
* 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 VM

[cent@dlp ~]$
minikube delete

* Deleting "minikube" in kvm2 ...
* Removed all traces of the "minikube" cluster.
Matched Content