
Learn how to install a Kubernetes cluster on RHEL 9 | CentOS 9. Explore step-by-step instructions, best practices, and considerations for smooth deployment and operation.
Learn how to configure Minikube with Podman on CentOS Stream 10. This guide walks you through installation, configuration, and testing, enabling you to run Kubernetes locally with Podman.
In the world of container orchestration, Minikube has earned its place as a top choice for local Kubernetes clusters. It is lightweight, fast, and provides a reliable environment for testing and development. But what if you prefer using Podman as your container runtime over the default Docker runtime? In this blog post, we’ll walk through the steps required to configure Minikube with Podman on CentOS Stream 10, giving you a modern containerization experience without Docker.
We will cover everything from installing dependencies to configuring Minikube and troubleshooting potential issues. By the end, you’ll have Minikube running smoothly with Podman and CRI-O as the container runtime on your CentOS Stream 10 machine.
Before we dive into the actual setup, ensure you have the following prerequisites installed on your CentOS Stream 10 system:
|
|
|
💡If you’re running the server or workstation version of CentOS Stream 10, podman is installed automatically by default. |
Install Podman |
Install it with the following command:
dnf install podman -y
To verify the installation, run:
podman --version
podman version 5.5.1
Download and Install Minikube |
Next, install Minikube. The easiest method is using the official Minikube binary:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
To verify the installation, run:
minikube version
minikube version: v1.36.0
commit: f8f52f5de11fc6ad8244afac475e1d0f96841df1-dirty
💡It’s common for the version of |
echo 'alias kubectl="minikube kubectl --"' >> ~/.bashrc && source ~/.bashrc
By default, Minikube uses Docker as its container runtime. To configure Minikube to use Podman, we need to set it as the runtime and adjust a few configurations. Additionally, we will set CRI-O as the container runtime. First, set the container runtime to CRI-O using the following command:
minikube config set container-runtime cri-o
❗ These changes will take effect upon a minikube delete and then a minikube start
Next, set the container driver to Podman:
minikube config set driver podman
❗ These changes will take effect upon a minikube delete and then a minikube start
You can verify these settings by running:
minikube config view
- container-runtime: cri-o
- driver: podman
First, set minikube to run rootless:
minikube config set rootless true
Start the cluster with:
minikube start --driver=podman
😄 minikube v1.36.0 on Centos 10 (kvm/amd64)
▪ MINIKUBE_ROOTLESS=true
✨ Using the podman driver based on user configuration
📌 Using rootless Podman driver
👍 Starting "minikube" primary control-plane node in "minikube" cluster
🚜 Pulling base image v0.0.47 ...
💾 Downloading Kubernetes v1.33.1 preload ...
> preloaded-images-k8s-v18-v1...: 394.07 MiB / 394.07 MiB 100.00% 81.05 M
> gcr.io/k8s-minikube/kicbase...: 502.26 MiB / 502.26 MiB 100.00% 24.73 M
E0801 19:41:22.948506 7735 cache.go:225] Error downloading kic artifacts: not yet implemented, see issue #8426
🔥 Creating podman container (CPUs=2, Memory=2200MB) ...
🎁 Preparing Kubernetes v1.33.1 on CRI-O 1.24.6 ...
▪ 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
💡 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
💡E0801 19:41:22.948506 7735 cache.go:225] Error downloading kic artifacts: not yet implemented, see issue #8426: This message indicates that Minikube attempted to download KIC (Kubernetes in Container) artifacts, which are base images used to run Kubernetes nodes inside containers (e.g., with Podman or Docker). However, the feature to download these artifacts in your specific setup—likely with rootless Podman—has not yet been implemented in Minikube. The reference to issue #8426 points to a known limitation in the project’s GitHub repository, suggesting that this functionality is pending development or enhancement. |
Issue 1: Podman Volume Exists |
Sometimes, you may encounter the following error when starting Minikube:
Error: volume with name minikube already exists: volume already exists
To resolve this, you need to remove the existing volume manually:
minikube start --container-runtime=podman
First, list the podman volume(s):
podman volume ls
DRIVER VOLUME NAME
local minikube
Then, remove the minikube volume:
podman volume rm minikube
After removing the volume, attempt to start Minikube again.
Issue 2: Failed to Start Minikube Container |
If Minikube fails to start the container due to issues like permissions or conflicts with system services, running the following commands may resolve the issue. Delete the current Minikube profile:
minikube delete -p minikube
Remove any existing Minikube configurations or volumes:
minikube delete --all
After clearing any existing configurations, set up the container runtime and driver again:
minikube config set container-runtime cri-o
minikube config set driver podman
Finally, restart Minikube:
minikube start --driver=podman
Once Minikube has started successfully, you can verify that everything is running as expected by checking the status:
minikube status
This will display the status of your Kubernetes cluster, including the control plane and the nodes. If all components are up and running, the output should look something like this:
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
You can also check if your Kubernetes cluster is accessible using kubectl
:
kubectl get pods -A
This command will show you all the running pods across namespaces in your cluster. You should see essential system pods like storage-provisioner.
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-674b8bbfcf-ks7rw 1/1 Running 0 55m
kube-system etcd-minikube 1/1 Running 0 55m
kube-system kindnet-8p6g5 1/1 Running 0 55m
kube-system kube-apiserver-minikube 1/1 Running 0 55m
kube-system kube-controller-manager-minikube 1/1 Running 1 (55m ago) 55m
kube-system kube-proxy-d4wqj 1/1 Running 0 55m
kube-system kube-scheduler-minikube 1/1 Running 0 55m
kube-system storage-provisioner 1/1 Running 1 (54m ago) 55m
Check Container Runtime |
To confirm that CRI-O is being used as the container runtime, run:
kubectl get pods -A
Under the CONTAINER-RUNTIME
column, you should see cri-o listed.
AME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane 59m v1.33.1 192.168.49.2 Ubuntu 22.04.5 LTS 6.12.0-113.el10.x86_64 cri-o://1.24.6
After getting Minikube up and running, there are several things you can do to enhance your setup:
Enable Minikube Addons |
Minikube comes with a set of handy addons. You can enable them with the following commands:
Enable the ingress addon to manage external HTTP/S traffic: |
minikube addons enable ingress
Enable metrics-server to monitor your cluster: |
minikube addons enable metrics-server
Increase Resources |
If you want to increase the resources allocated to Minikube, you can change the number of CPUs and memory:
minikube config set cpus 4
minikube config set memory 4096
minikube start --driver=podman
This increases the available CPU and memory to improve performance.
Congratulations! 🎉 You have successfully set up Minikube on CentOS Stream 10 with Podman as the container runtime and CRI-O as the Kubernetes runtime. You’ve learned how to configure Minikube, handle common errors, and verify your setup to ensure everything is working correctly.
This setup provides a modern, efficient, and lightweight development environment that aligns with the latest container technologies. Whether you’re developing, testing, or learning Kubernetes, Minikube with Podman is an excellent choice.
Did you find this article helpful? Your feedback is invaluable to us! Feel free to share this post with those who may benefit, and let us know your thoughts in the comments section below.
Learn how to install a Kubernetes cluster on RHEL 9 | CentOS 9. Explore step-by-step instructions, best practices, and considerations for smooth deployment and operation.
Step‑by‑step guide to installing Minikube on CentOS Stream 10: Docker or KVM2 setup, prerequisites, kubectl, starting a local Kubernetes cluster, dashboard, and troubleshooting. Table of Contents
In this guide, we’ll walk you through the process of deploying WordPress on Minikube, enabling you to develop and test your WordPress sites with ease.