/minikube

Run Kubernetes locally

Primary LanguageGoApache License 2.0Apache-2.0

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

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