Environment:Kserve Kserve Kubernetes Cluster
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Container_Orchestration |
| Last Updated | 2026-02-13 14:00 GMT |
Overview
Kubernetes 1.24+ cluster required as the base platform for deploying KServe InferenceServices and all dependent components.
Description
KServe runs as a set of Kubernetes controllers and webhooks that extend the Kubernetes API with custom resources (InferenceService, InferenceGraph, TrainedModel, LLMInferenceService). The cluster must meet minimum version requirements and have sufficient RBAC permissions for the KServe service accounts to manage pods, services, deployments, and custom resources across namespaces.
Usage
Use this environment as the base platform for all KServe workflows. Every InferenceService, InferenceGraph, and LLMInferenceService deployment requires a running Kubernetes cluster that meets the minimum version and RBAC requirements.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux | Kubernetes nodes must run Linux |
| Kubernetes | >= 1.24 | Enforced by install scripts |
| kubectl | Compatible with cluster version | Required for CLI operations |
| Helm | v3.16.3+ | Used for installing Istio, cert-manager, Knative |
| Kustomize | v5.5.0+ | Used for KServe manifest generation |
Dependencies
System Packages
- `kubectl` (compatible with cluster version)
- `helm` >= v3.16.3
- `kustomize` >= v5.5.0
Go Runtime
- `go` >= 1.25.4 (for building from source)
Credentials
The following credentials may be required depending on deployment:
- `KUBECONFIG`: Path to Kubernetes cluster configuration
- Cloud provider credentials for managed Kubernetes (GKE, EKS, AKS)
Quick Install
# Serverless mode (with Istio + Knative)
./hack/quick_install.sh -s
# Raw deployment mode (without service mesh)
./hack/quick_install.sh -r
Code Evidence
Version validation from `hack/quick_install.sh:88-95`:
get_kube_version() {
kubectl version --short=true 2>/dev/null || kubectl version | awk -F '.' '/Server Version/ {print $2}'
}
if [ "$(get_kube_version)" -lt 24 ]; then
echo "install requires at least Kubernetes 1.24"
exit 1
fi
Namespace configuration from `pkg/constants/constants.go:41`:
KServeNamespace = GetEnvOrDefault("POD_NAMESPACE", "kserve")
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `install requires at least Kubernetes 1.24` | Cluster version too old | Upgrade Kubernetes to 1.24 or higher |
| `metadata.annotations: Too long: must have at most 262144 bytes` | CRD annotations exceed limit | Use `kubectl apply --server-side=true -k ./config/default` |
| `kserve/kserve is out of date. Please run make generate` | Generated code is stale | Run `make generate && make manifests` in order |
Compatibility Notes
- GKE: GPU nodes are tainted with `nvidia.com/gpu:NoSchedule` by default
- AKS: No default GPU node taints
- OpenShift: Tested on v4.17; requires OpenShift Serverless and Service Mesh operators
- KIND: Supported for local development with v0.30.0+
Related Pages
- Implementation:Kserve_Kserve_InferenceServiceReconciler
- Implementation:Kserve_Kserve_InferenceService_Webhook_Chain
- Implementation:Kserve_Kserve_LLMIsvc_Quick_Install
- Implementation:Kserve_Kserve_LLMIsvc_Controller
- Implementation:Kserve_Kserve_TrainedModel_Reconciler
- Implementation:Kserve_Kserve_GPU_Cluster_Credentials
- Implementation:Kserve_Kserve_InferenceService_CRD_Spec