minikube implements a local Kubernetes cluster on macOS, Linux, and Windows.
Our project goals are to enable fast local development and to support all Kubernetes features that fit. We hope you enjoy it!
- 2019-03-27 - v1.0.0 released! [download] [release notes]
- 2019-03-06 - v0.35.0 released! [download] [release notes]
- 2019-02-16 - v0.34.1 released! [download] [release notes]
minikube runs the official stable release of Kubernetes, with support for standard Kubernetes features like:
- LoadBalancer - using
minikube tunnel
- Multi-cluster - using
minikube start -p <name>
- NodePorts - using
minikube service
- Persistent Volumes
- Ingress
- RBAC
- Dashboard -
minikube dashboard
- Container runtimes -
start --container-runtime
- Configure apiserver and kubelet options via command-line flags
As well as developer-friendly features:
- Addons - a marketplace for developers to share configurations for running services on minikube
- GPU support - for machine learning
- Filesystem mounts
- Automatic failure analysis
minikube is a Kubernetes #sig-cluster-lifecycle project.
-
#minikube on Kubernetes Slack - Live chat with minikube developers!
See the installation guide. For the impatient, here is the TL;DR:
-
macOS 10.12 (Sierra)
-
Windows 10
- Requires a hypervisor, such as VirtualBox (recommended) or HyperV
- VT-x/AMD-v virtualization must be enabled in BIOS
- using chocolatey
choco install minikube
- manually: Download and run the installer
-
Linux
- Requires either the kvm2 driver (recommended), or VirtualBox
- VT-x/AMD-v virtualization must be enabled in BIOS
- manually:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start
defaults to virtualbox, but supports other drivers using the --vm-driver
argument:
- KVM2 - Recommended Linux driver
- hyperkit - Recommended macOS driver
- virtualbox - Recommended Windows driver
- none - bare-metal execution on Linux, at the expense of system security and reliability
Other drivers which are not yet part of our continuous integration system are:
Start a cluster by running:
minikube start
Once started, you can interact with your cluster using kubectl
, just like any other Kubernetes cluster. For instance, starting a server:
kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080
Exposing a service as a NodePort
kubectl expose deployment hello-minikube --type=NodePort
minikube makes it easy to open this exposed endpoint in your browser:
minikube service hello-minikube
Start a second local cluster:
minikube start -p cluster2
Stop your local cluster:
minikube stop
Delete your local cluster:
minikube delete