What is minikube?
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
- Multi-cluster - using
minikube start -p <name>
- NodePorts - using
- Persistent Volumes
- Dashboard -
- Container runtimes -
- 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)
- Requires either the kvm2 driver (recommended), or VirtualBox
- VT-x/AMD-v virtualization must be enabled in BIOS
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
- 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:
Access Kubernetes Dashboard within Minikube:
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:
Delete your local cluster:
Package util is a hodge-podge of utility functions that should be moved elsewhere.
|Package util is a hodge-podge of utility functions that should be moved elsewhere.|
listpullreqs.go lists pull requests since the last release.
|listpullreqs.go lists pull requests since the last release.|
Package console provides a mechanism for sending localized, stylized output to the console.
|Package console provides a mechanism for sending localized, stylized output to the console.|
Package cruntime contains code specific to container runtimes
|Package cruntime contains code specific to container runtimes|
Package exit contains functions useful for exiting gracefully.
|Package exit contains functions useful for exiting gracefully.|
Package logs are convenience methods for fetching logs from a minikube cluster
|Package logs are convenience methods for fetching logs from a minikube cluster|
Package problem helps deliver actionable feedback to a user based on an error message.
|Package problem helps deliver actionable feedback to a user based on an error message.|
The clnt package go9provides definitions and functions used to implement a 9P2000 file client.
|The clnt package go9provides definitions and functions used to implement a 9P2000 file client.|