Skip to main content
This guide walks through installing KServe on a local Kubernetes cluster using Minikube. KServe is a Kubernetes-native model serving platform that simplifies deploying, scaling, and operating machine learning models in production. These instructions target macOS, with equivalent commands for Linux and Windows included where relevant. By the end of this guide you will have:
  • A running local Kubernetes cluster (Minikube).
  • cert-manager installed to manage TLS for admission webhooks.
  • KServe controller and CRDs installed and verified.
Keywords: KServe installation, Minikube, cert-manager, Helm, kubectl, Docker Desktop, local model serving. Prerequisites overview:
  • Docker Desktop — container runtime for Minikube (or docker.io on Linux)
  • kubectl — Kubernetes CLI
  • Minikube — local Kubernetes cluster
  • Helm — package manager for Kubernetes
  • cert-manager — TLS certificate automation for admission webhooks
  • KServe — model serving CRDs and controller
A slide titled "Pre-requisites" showing an "Install" bar above six rounded boxes listing required tools: Docker Desktop, Kubernetes & Kubectl, Minikube, helm, cert-manager, and KServe standalone. The slide is © KodeKloud.
Below are step-by-step instructions with verification commands.

Prerequisites (detailed)


Step 1 — Install & Start Docker

Docker provides the container runtime used by Minikube when the Docker driver is selected. macOS & Windows:
  • Install Docker Desktop from the Docker website and ensure it is running.
Linux (Debian/Ubuntu example):
Make sure Docker is running before starting Minikube.

Step 2 — Install kubectl

kubectl is required to interact with your cluster and verify resources. macOS:
Windows:
Linux (example using the official release binary):
Verify:

Step 3 — Start Minikube

Start Minikube with Docker as the driver and allocate enough resources for inference workloads. The example below uses 4 CPUs, 6 GB of RAM, and 25 GB disk:
Check nodes:
Allocate adequate CPU, memory, and disk when running inference workloads locally. If you encounter resource pressure, increase CPU and memory or scale down model resource requests.

Step 4 — Install Helm

Helm simplifies installing KServe and its dependencies. macOS:
Linux:
Windows:
Helm will install the KServe chart and CRDs in the KServe namespace.

Step 5 — Install cert-manager

KServe uses Kubernetes admission webhooks that require TLS certificates. cert-manager automates certificate issuance and rotation. Install cert-manager via the upstream manifest:
Verify cert-manager pods are running in the cert-manager namespace:
Sample (trimmed) output while pods are starting:
Wait until all cert-manager pods are in the Running state before proceeding.
If cert-manager pods do not become Running within a few minutes, check pod logs (kubectl logs -n cert-manager <pod>) and ensure your Minikube VM has sufficient resources and network access to pull images.

Step 6 — Install KServe (CRDs + Controller)

KServe extends Kubernetes with CRDs such as InferenceService, ServingRuntime, and ClusterServingRuntime. Install KServe using the Helm chart from the GitHub Container Registry. Create the kserve namespace (Helm will create it if missing) and install the chart. This example sets the controller deployment mode to Standard and uses version v0.16.0 of the chart:
Example successful Helm output (truncated):
Verify KServe pods in the kserve namespace:
You should see the KServe controller and related components in Running state. If pods are crashing or in CrashLoopBackOff, inspect logs:

Final verification — Confirm KServe CRDs

Ensure the KServe CRDs are registered in the Kubernetes API. On macOS / Linux:
On Windows (PowerShell or cmd):
Sample expected CRDs (trimmed):
Seeing these CRDs confirms KServe types (for example InferenceService) are available, and your KServe installation is ready.

Next steps

Once KServe is installed and verified:
  • Create an InferenceService manifest to deploy a model.
  • Explore ServingRuntime or ClusterServingRuntime if you need custom runtimes or GPU support.
  • Use kubectl describe and kubectl logs to debug InferenceService resources and pods.
Useful commands:
  • kubectl get inferenceservice -A
  • kubectl describe inferenceservice <name> -n <namespace>
  • kubectl logs -l serving.kserve.io/controller -n kserve

If all verification steps are green (cert-manager pods running, KServe pods running, and CRDs present), your local KServe installation is ready for creating InferenceService resources and serving models.

Watch Video