Dear friends, today we will see how to install Kubernetes Minikube on CentOS 9, So let’s start and see step by step this process.
In the world of Kubernetes and container orchestration, Minikube provides a fantastic way to experiment and develop locally before deploying applications to production environments. It creates a single-node Kubernetes cluster on your local machine, enabling you to test and learn Kubernetes without needing to provision complex cloud-based infrastructure.
This article will guide you step-by-step through installing Minikube on CentOS 9. From system prerequisites to installation, configuration, and first-time setup, you’ll be able to get your own Minikube environment up and running in no time.
We will follow these steps to install Kubernetes Minikube on CentOS 9
- Prerequisites
- Installing Dependencies
- Downloading and Installing Minikube
- Starting Minikube
- Verifying the Installation
- Using Minikube
- Troubleshooting
- Conclusion
1. Prerequisites
Before installing Kubernetes Minikube on CentOS 9, there are a few things you need to ensure your system is ready for the installation:
a) Hardware Requirements to install Kubernetes Minikube :
- CPU: A processor that supports virtualization (Intel VT-x or AMD-V).
- RAM: Minimum of 2GB of RAM, but 4GB or more is recommended for smoother performance.
- Disk Space: At least 2GB of available disk space for Minikube itself, plus space for the Kubernetes components and any Docker images you will use.
b) Software Requirements to install Kubernetes Minikube:
- CentOS 9 Operating System: Ensure you have CentOS 9 installed and up to date.
- Docker or VirtualBox: Minikube requires a container runtime, such as Docker, or a virtual machine manager, like VirtualBox.
If you don’t already have Docker or VirtualBox installed, you’ll need to do so first.
2. Installing Dependencies
Minikube requires certain dependencies to run on CentOS 9. The primary ones are Docker (for container management) and kubectl (the Kubernetes command-line tool). You will also need curl to fetch Minikube binaries, and VirtualBox or KVM for virtualization support if you prefer to use a VM backend instead of Docker.
Step 1: Install Docker
To install Docker on CentOS 9, follow these steps:
- Update your system:
sudo dnf update -y


- Install required packages:
sudo dnf install -y dnf-utils
[root@urclouds ~]# sudo dnf install -y dnf-utils
Last metadata expiration check: 0:09:39 ago on Sun 21 Sep 2025 09:44:01 PM IST.
Dependencies resolved.
========================================================================================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================================================================================
Installing:
yum-utils noarch 4.3.0-22.el9 baseos 39 k
Transaction Summary
========================================================================================================================================================================================
Install 1 Package
Total download size: 39 k
Installed size: 23 k
Downloading Packages:
yum-utils-4.3.0-22.el9.noarch.rpm 80 kB/s | 39 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 36 kB/s | 39 kB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : yum-utils-4.3.0-22.el9.noarch 1/1
Running scriptlet: yum-utils-4.3.0-22.el9.noarch 1/1
Verifying : yum-utils-4.3.0-22.el9.noarch 1/1
Installed:
yum-utils-4.3.0-22.el9.noarch
Complete!
[root@urclouds ~]#
- Add Docker repository:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
[root@urclouds ~]# sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
[root@urclouds ~]#
- Install Docker:
sudo dnf install -y docker-ce docker-ce-cli containerd.io
[root@urclouds ~]# sudo dnf install -y docker-ce docker-ce-cli containerd.io
Docker CE Stable - x86_64 202 kB/s | 54 kB 00:00
Last metadata expiration check: 0:00:01 ago on Sun 21 Sep 2025 10:00:14 PM IST.
Dependencies resolved.
========================================================================================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================================================================================
Installing:
containerd.io x86_64 1.7.27-3.1.el9 docker-ce-stable 44 M
docker-ce x86_64 3:28.4.0-1.el9 docker-ce-stable 21 M
docker-ce-cli x86_64 1:28.4.0-1.el9 docker-ce-stable 8.6 M
Installing dependencies:
container-selinux noarch 4:2.241.0-1.el9 appstream 60 k
fuse-common x86_64 3.10.2-9.el9 baseos 8.3 k
fuse-overlayfs x86_64 1.15-1.el9 appstream 67 k
fuse3 x86_64 3.10.2-9.el9 appstream 54 k
fuse3-libs x86_64 3.10.2-9.el9 appstream 91 k
libslirp x86_64 4.4.0-8.el9 appstream 68 k
slirp4netns x86_64 1.3.3-1.el9 appstream 47 k
tar x86_64 2:1.34-7.el9 baseos 885 k
Installing weak dependencies:
docker-buildx-plugin x86_64 0.28.0-1.el9 docker-ce-stable 17 M
docker-ce-rootless-extras x86_64 28.4.0-1.el9 docker-ce-stable 3.4 M
docker-compose-plugin x86_64 2.39.4-1.el9 docker-ce-stable 15 M
Transaction Summary
========================================================================================================================================================================================
Install 14 Packages
Total download size: 110 M
Installed size: 439 M
Downloading Packages:
(1/14): container-selinux-2.241.0-1.el9.noarch.rpm 80 kB/s | 60 kB 00:00
(2/14): fuse-common-3.10.2-9.el9.x86_64.rpm 10 kB/s | 8.3 kB 00:00
(3/14): fuse-overlayfs-1.15-1.el9.x86_64.rpm 221 kB/s | 67 kB 00:00
(4/14): fuse3-libs-3.10.2-9.el9.x86_64.rpm 312 kB/s | 91 kB 00:00
(5/14): fuse3-3.10.2-9.el9.x86_64.rpm 72 kB/s | 54 kB 00:00
(6/14): libslirp-4.4.0-8.el9.x86_64.rpm 300 kB/s | 68 kB 00:00
(7/14): slirp4netns-1.3.3-1.el9.x86_64.rpm 112 kB/s | 47 kB 00:00
(8/14): docker-buildx-plugin-0.28.0-1.el9.x86_64.rpm 1.7 MB/s | 17 MB 00:09
(9/14): tar-1.34-7.el9.x86_64.rpm 64 kB/s | 885 kB 00:13
(10/14): containerd.io-1.7.27-3.1.el9.x86_64.rpm 2.7 MB/s | 44 MB 00:16
(11/14): docker-ce-cli-28.4.0-1.el9.x86_64.rpm 1.3 MB/s | 8.6 MB 00:06
(12/14): docker-ce-rootless-extras-28.4.0-1.el9.x86_64.rpm 1.2 MB/s | 3.4 MB 00:02
(13/14): docker-ce-28.4.0-1.el9.x86_64.rpm 1.7 MB/s | 21 MB 00:11
(14/14): docker-compose-plugin-2.39.4-1.el9.x86_64.rpm 2.7 MB/s | 15 MB 00:05
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 4.1 MB/s | 110 MB 00:26
Docker CE Stable - x86_64 16 kB/s | 1.6 kB 00:00
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
From : https://download.docker.com/linux/centos/gpg
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : docker-compose-plugin-2.39.4-1.el9.x86_64 1/14
Running scriptlet: docker-compose-plugin-2.39.4-1.el9.x86_64 1/14
Installing : fuse3-libs-3.10.2-9.el9.x86_64 2/14
Running scriptlet: container-selinux-4:2.241.0-1.el9.noarch 3/14
Installing : container-selinux-4:2.241.0-1.el9.noarch 3/14
Running scriptlet: container-selinux-4:2.241.0-1.el9.noarch 3/14
Installing : containerd.io-1.7.27-3.1.el9.x86_64 4/14
Running scriptlet: containerd.io-1.7.27-3.1.el9.x86_64 4/14
Installing : docker-buildx-plugin-0.28.0-1.el9.x86_64 5/14
Running scriptlet: docker-buildx-plugin-0.28.0-1.el9.x86_64 5/14
Installing : docker-ce-cli-1:28.4.0-1.el9.x86_64 6/14
Running scriptlet: docker-ce-cli-1:28.4.0-1.el9.x86_64 6/14
Installing : libslirp-4.4.0-8.el9.x86_64 7/14
Installing : slirp4netns-1.3.3-1.el9.x86_64 8/14
Installing : tar-2:1.34-7.el9.x86_64 9/14
Installing : fuse-common-3.10.2-9.el9.x86_64 10/14
Installing : fuse3-3.10.2-9.el9.x86_64 11/14
Installing : fuse-overlayfs-1.15-1.el9.x86_64 12/14
Running scriptlet: fuse-overlayfs-1.15-1.el9.x86_64 12/14
Installing : docker-ce-3:28.4.0-1.el9.x86_64 13/14
Running scriptlet: docker-ce-3:28.4.0-1.el9.x86_64 13/14
Installing : docker-ce-rootless-extras-28.4.0-1.el9.x86_64 14/14
Running scriptlet: docker-ce-rootless-extras-28.4.0-1.el9.x86_64 14/14
Running scriptlet: container-selinux-4:2.241.0-1.el9.noarch 14/14
Running scriptlet: docker-ce-rootless-extras-28.4.0-1.el9.x86_64 14/14
Verifying : fuse-common-3.10.2-9.el9.x86_64 1/14
Verifying : tar-2:1.34-7.el9.x86_64 2/14
Verifying : container-selinux-4:2.241.0-1.el9.noarch 3/14
Verifying : fuse-overlayfs-1.15-1.el9.x86_64 4/14
Verifying : fuse3-3.10.2-9.el9.x86_64 5/14
Verifying : fuse3-libs-3.10.2-9.el9.x86_64 6/14
Verifying : libslirp-4.4.0-8.el9.x86_64 7/14
Verifying : slirp4netns-1.3.3-1.el9.x86_64 8/14
Verifying : containerd.io-1.7.27-3.1.el9.x86_64 9/14
Verifying : docker-buildx-plugin-0.28.0-1.el9.x86_64 10/14
Verifying : docker-ce-3:28.4.0-1.el9.x86_64 11/14
Verifying : docker-ce-cli-1:28.4.0-1.el9.x86_64 12/14
Verifying : docker-ce-rootless-extras-28.4.0-1.el9.x86_64 13/14
Verifying : docker-compose-plugin-2.39.4-1.el9.x86_64 14/14
Installed:
container-selinux-4:2.241.0-1.el9.noarch containerd.io-1.7.27-3.1.el9.x86_64 docker-buildx-plugin-0.28.0-1.el9.x86_64 docker-ce-3:28.4.0-1.el9.x86_64
docker-ce-cli-1:28.4.0-1.el9.x86_64 docker-ce-rootless-extras-28.4.0-1.el9.x86_64 docker-compose-plugin-2.39.4-1.el9.x86_64 fuse-common-3.10.2-9.el9.x86_64
fuse-overlayfs-1.15-1.el9.x86_64 fuse3-3.10.2-9.el9.x86_64 fuse3-libs-3.10.2-9.el9.x86_64 libslirp-4.4.0-8.el9.x86_64
slirp4netns-1.3.3-1.el9.x86_64 tar-2:1.34-7.el9.x86_64
Complete!
[root@urclouds ~]#
- Start and enable Docker service:
sudo systemctl start docker
sudo systemctl enable docker
[root@urclouds ~]# sudo systemctl start docker
[root@urclouds ~]#
[root@urclouds ~]# sudo systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@urclouds ~]#
- Verify Docker installation:
docker --version
[root@urclouds ~]# docker --version
Docker version 28.4.0, build d8eb465
[root@urclouds ~]#
If everything went well, this should output the version of Docker installed.
Step 2: Install kubectl
kubectl is the command-line interface for interacting with Kubernetes clusters. To install kubectl on CentOS 9, follow these steps:
- Download the kubectl binary:
curl -LO https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl
[root@urclouds ~]# curl -LO https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 138 100 138 0 0 256 0 --:--:-- --:--:-- --:--:-- 256
100 45.7M 100 45.7M 0 0 1655k 0 0:00:28 0:00:28 --:--:-- 1622k
[root@urclouds ~]#
- Make the binary executable:
chmod +x ./kubectl
[root@urclouds ~]# chmod +x ./kubectl
[root@urclouds ~]#
- Move the binary to a directory in your PATH:
sudo mv ./kubectl /usr/local/bin/kubectl
[root@urclouds ~]# ls -l
total 46900
-rw-------. 1 root root 679 Sep 11 22:04 anaconda-ks.cfg
-rwxr-xr-x. 1 root root 48021504 Sep 21 22:06 kubectl
[root@urclouds ~]# sudo mv ./kubectl /usr/local/bin/kubectl
[root@urclouds ~]#
[root@urclouds ~]# cd /usr/local/bin/
[root@urclouds bin]# ls -l
total 46896
-rwxr-xr-x. 1 root root 48021504 Sep 21 22:06 kubectl
[root@urclouds bin]#
- Verify kubectl installation:
kubectl version --client
[root@urclouds bin]# kubectl version --client
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:58:30Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
[root@urclouds bin]#
If the installation was successful, this should display the kubectl client version.
3. Downloading and Installing Minikube
Now that Docker and kubectl are installed, we can move on to installing Minikube.
Step 1: Download Minikube
- Download the Minikube binary:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
[root@urclouds ~]# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 133M 100 133M 0 0 2524k 0 0:00:54 0:00:54 --:--:-- 4825k
[root@urclouds ~]#
[root@urclouds ~]# ls -l
total 136612
-rw-------. 1 root root 679 Sep 11 22:04 anaconda-ks.cfg
-rw-r--r--. 1 root root 139886451 Sep 21 22:13 minikube-linux-amd64
[root@urclouds ~]#
- Make the binary executable:
chmod +x minikube-linux-amd64
[root@urclouds ~]# chmod +x minikube-linux-amd64
[root@urclouds ~]#
[root@urclouds ~]# ls -l
total 136612
-rw-------. 1 root root 679 Sep 11 22:04 anaconda-ks.cfg
-rwxr-xr-x. 1 root root 139886451 Sep 21 22:13 minikube-linux-amd64
[root@urclouds ~]#
- Move the binary to a directory in your PATH:
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
[root@urclouds ~]# sudo mv minikube-linux-amd64 /usr/local/bin/minikube
[root@urclouds ~]#
[root@urclouds ~]# cd /usr/local/bin/
[root@urclouds bin]# ls -l
total 183504
-rwxr-xr-x. 1 root root 48021504 Sep 21 22:06 kubectl
-rwxr-xr-x. 1 root root 139886451 Sep 21 22:13 minikube
[root@urclouds bin]#
- Verify Minikube installation:
minikube version
[root@urclouds bin]# minikube version
minikube version: v1.37.0
commit: 65318f4cfff9c12cc87ec9eb8f4cdd57b25047f3
[root@urclouds bin]#
You should now see the version of Minikube you just installed.
4. Starting Minikube
Minikube can run with different virtual machine backends like Docker, VirtualBox, and KVM. By default, Minikube uses Docker as its container runtime, but you can specify other backends as needed.
Step 1: Start Minikube with Docker
To start a Minikube cluster using Docker as the container runtime, simply run:
minikube start --driver=docker --force
[root@urclouds ~]# minikube start --driver=docker --force
* minikube v1.37.0 on Centos 9
! minikube skips various validations when --force is supplied; this may lead to unexpected behavior
* Using the docker driver based on user configuration
* The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
* If you are running minikube within a VM, consider using --driver=none:
* https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* Using Docker driver with root privileges
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.48 ...
* Downloading Kubernetes v1.34.0 preload ...
> preloaded-images-k8s-v18-v1...: 337.07 MiB / 337.07 MiB 100.00% 2.46 Mi
> gcr.io/k8s-minikube/kicbase...: 488.51 MiB / 488.52 MiB 100.00% 2.84 Mi
* Creating docker container (CPUs=2, Memory=3072MB) ...
* Preparing Kubernetes v1.34.0 on Docker 28.4.0 ...
* Configuring bridge CNI (Container Networking Interface) ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: storage-provisioner, default-storageclass
! /usr/local/bin/kubectl is version 1.26.0, which may have incompatibilities with Kubernetes 1.34.0.
- Want kubectl v1.34.0? Try 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
[root@urclouds ~]#
This command starts Minikube with Docker as the underlying virtualization driver. It will download the necessary Kubernetes images and set up a local Kubernetes cluster.
You can also use other drivers like virtualbox or kvm by replacing –driver=docker with the desired driver.
Step 2: Check the Status
Once Minikube starts, you can check the status of your cluster:
minikube status
[root@urclouds ~]# minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
[root@urclouds ~]#
This will show the status of the Kubernetes cluster, the Minikube VM, and the Docker daemon.
5. Verifying the Installation
Once your cluster is up and running, verify that everything is working by using kubectl to interact with the Kubernetes API.
Step 1: Set kubectl Context
Minikube sets up a Kubernetes context for you to use with kubectl. To ensure kubectl is using the correct context, run
kubectl config use-context minikube
[root@urclouds ~]# kubectl config use-context minikube
Switched to context "minikube".
[root@urclouds ~]#
Step 2: Verify Cluster Information
Check the Kubernetes cluster’s health by running:
kubectl cluster-info
[root@urclouds ~]# kubectl cluster-info
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
[root@urclouds ~]#
Kubernetes master is running at https://192.168.49.2
Step 3: List Nodes
To verify that your Kubernetes cluster has nodes running, use:
kubectl get nodes
[root@urclouds ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 23m v1.34.0
[root@urclouds ~]#
You should see a single node listed, with the status “Ready”.
6. Using Minikube
Now that Minikube is installed and running, you can start deploying applications to your local Kubernetes cluster. Here’s a basic example of how to deploy a simple app.
Step 1: Create a Deployment
To create a deployment, run:
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
[root@urclouds ~]# kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
deployment.apps/hello-minikube created
[root@urclouds ~]#
This will create a deployment named hello-minikube running the echoserver image.
Step 2: Expose the Deployment
To expose the deployment as a service, use the following command:
kubectl expose deployment hello-minikube --type=NodePort --port=8080
[root@urclouds ~]# kubectl expose deployment hello-minikube --type=NodePort --port=8080
service/hello-minikube exposed
[root@urclouds ~]#
This creates a NodePort service, allowing you to access the deployment via a port on your local machine.
Step 3: Access the Application
To get the URL to access the application, use the following:
minikube service hello-minikube --url
[root@urclouds ~]# minikube service hello-minikube --url
http://192.168.49.2:32764
[root@urclouds ~]#
This will return a URL you can visit in your browser to access the running application.
7. Troubleshooting
While Minikube is easy to set up, you may encounter a few common issues. Here are some common troubleshooting tips:
Issue 1: Minikube Fails to Start
If Minikube fails to start, ensure that your system supports virtualization (check that Intel VT-x or AMD-V is enabled in your BIOS). Additionally, verify that Docker or your chosen VM driver is installed and running correctly.
You can check the logs of Minikube with:
minikube logs
This will give you detailed logs to help diagnose the issue.
Issue 2: Kubernetes Dashboard Not Available
To enable the Kubernetes dashboard for a more visual experience, run:
minikube dashboard
This will start the Kubernetes dashboard in your default web browser.
Issue 3: Insufficient Resources
If Minikube is running slowly, you may need to adjust the resources allocated to the Minikube VM. You can specify more CPU and memory like this:
minikube start --memory 4096 --cpus 2
8. Conclusion
Congratulations! You’ve successfully installed Minikube on CentOS 9. You now have a local Kubernetes environment where you can deploy and manage containerized applications. Minikube is an excellent tool for learning Kubernetes, testing new configurations, and experimenting with cloud-native technologies.
If you encounter any issues or need further assistance, don’t hesitate to refer to the Minikube documentation or community forums for more help. Happy Kubernetes-ing!
You can also check this link related to kubernetes:-
How to create ReplicaSet in kubernetes
How to Manage Containers in Kubernetes?
Kubernetes Networking Concepts, Architecture, and Best Practices
What is Kubernetes ReplicaSet and How to create it in Kubernetes?