README

minikube

BuildStatus Widget GoReport Widget

What is minikube?

minikube implements a local Kubernetes cluster on macOS, Linux, and Windows.

screenshot

Our project goals are to enable fast local development and to support all Kubernetes features that fit. We hope you enjoy it!

News

Features

minikube runs the official stable release of Kubernetes, with support for standard Kubernetes features like:

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

Documentation

Community

Help Wanted!

minikube is a Kubernetes #sig-cluster-lifecycle project.

Installation

See the installation guide. For the impatient, here is the TL;DR:

  • macOS 10.12 (Sierra)

    • Requires installing a hypervisor, such as hyperkit (recommended) or VirtualBox
    • using brew: brew cask install minikube
    • manually: curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && sudo install minikube-darwin-amd64 /usr/local/bin/minikube
  • 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
Supported Hypervisors

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:

Quick Start

Start a cluster by running:

minikube start

Access Kubernetes Dashboard within Minikube:

minikube dashboard

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

Directories

Path Synopsis
cmd
util
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.
deploy
release_notes
listpullreqs.go lists pull requests since the last release.
listpullreqs.go lists pull requests since the last release.
pkg
minikube/console
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.
minikube/cruntime
Package cruntime contains code specific to container runtimes
Package cruntime contains code specific to container runtimes
minikube/exit
Package exit contains functions useful for exiting gracefully.
Package exit contains functions useful for exiting gracefully.
minikube/logs
Package logs are convenience methods for fetching logs from a minikube cluster
Package logs are convenience methods for fetching logs from a minikube cluster
minikube/problem
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.
test
third_party
go9p
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.