minikube

command module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2016 License: Apache-2.0 Imports: 2 Imported by: 0

README

Minikube

Build Status

What is Minikube?

Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.

Features
  • Minikube packages and configures a Linux VM, Docker and all Kubernetes components, optimized for local development.
  • Minikube supports Kubernetes features such as:
    • DNS
    • NodePorts
    • ConfigMaps and Secrets
    • Dashboards

Installation

Requirements
Instructions

See the installation instructions for the latest release.

Quickstart

Here's a brief demo of minikube usage. If you want to change the VM driver to VMware Fusion add the --vm-driver=vmwarefusion flag to minikube start.

Note that the IP below is dynamic and can change. It can be retrieved with minikube ip.

$ minikube start
Starting local Kubernetes cluster...
Running pre-create checks...
Creating machine...
Starting local Kubernetes cluster...
Kubernetes is available at https://192.168.99.100:443.

$ kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --hostport=8000 --port=8080
deployment "hello-minikube" created
$ curl http://$(minikube ip):8000
CLIENT VALUES:
client_address=192.168.99.1
command=GET
real path=/
...
$ minikube stop
Stopping local Kubernetes cluster...
Stopping "minikubeVM"...

Managing your Cluster

Starting a Cluster

The minikube start command can be used to start your cluster. This command creates and configures a virtual machine that runs a single-node Kubernetes cluster. This command also configures your kubectl installation to communicate with this cluster.

Stopping a Cluster

The minikube stop command can be used to stop your cluster. This command shuts down the minikube virtual machine, but preserves all cluster state and data. Starting the cluster again will restore it to it's previous state.

Deleting a Cluster

The minikube delete command can be used to delete your cluster. This command shuts down and deletes the minikube virtual machine. No data or state is preserved.

Interacting With your Cluster

Kubectl

The minikube start command creates a "kubectl context" called "minikube". This context contains the configuration to communicate with your minikube cluster.

Minikube sets this context to default automatically, but if you need to switch back to it in the future, run:

kubectl config set-context minikube,

or pass the context on each command like this: kubectl get pods --context=minikube.

Dashboard

To access the Kubernetes Dashboard, run this command in a shell after starting minikube to get the address:

minikube dashboard

Networking

The minikube VM is exposed to the host system via a host-only IP address, that can be obtained with the minikube ip command. Any services of type NodePort can be accessed over that IP address, on the NodePort.

To determine the NodePort for your service, you can use a kubectl command like this:

kubectl get service $SERVICE --output='jsonpath="{.spec.ports[0].NodePort}"'

Persistent Volumes

Minikube supports PersistentVolumes of type hostPath. These PersistentVolumes are mapped to a directory inside the minikube VM.

Documentation

For a list of minikube's available commands see the full CLI docs.

Known Issues

  • Features that require a Cloud Provider will not work in Minikube. These include:
    • LoadBalancers
    • PersistentVolumes
    • Ingress
  • Features that require multiple nodes. These include:
    • Advanced scheduling policies
  • Alternate runtimes, like rkt.

Design

Minikube uses libmachine for provisioning VMs, and localkube (originally written and donated to this project by RedSpread) for running the cluster.

For more information about minikube, see the proposal.

Goals and Non-Goals

For the goals and non-goals of the minikube project, please see our roadmap.

Development Guide

See CONTRIBUTING.md for an overview of how to send pull requests.

Build Requirements
  • A recent Go distribution (>1.6)
  • If you're not on Linux, you'll need a Docker installation
  • Minikube requires at least 4GB of RAM to compile, which can be problematic when using docker-machine
Build Instructions
make out/minikube
Run Instructions

Start the cluster using your built minikube with:

$ ./out/minikube start
Running Tests
Unit Tests

Unit tests are run on Travis before code is merged. To run as part of a development cycle:

make test
Integration Tests

Integration tests are currently run manually. To run them, build the binary and run the tests:

make integration
Conformance Tests

These are kubernetes tests that run against an arbitrary cluster and exercise a wide range of kubernetes features. You can run these against minikube by following these steps:

  • Clone the kubernetes repo somewhere on your system.
  • Run make quick-release in the k8s repo.
  • Start up a minikube cluster with: minikube start.
  • Set these two environment variables:
export KUBECONFIG=$HOME/.kube/config
export KUBERNETES_CONFORMANCE_TEST=y
  • Run the tests (from the k8s repo):
go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Conformance\]" --check_version_skew=false --check_node_count=false

Community

Contributions, questions, and comments are all welcomed and encouraged! minkube developers hang out on Slack in the #minikube channel (get an invitation here). We also have the kubernetes-dev Google Groups mailing list. If you are posting to the list please prefix your subject with "minikube: ".

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
deploy
pkg
localkube/kube2sky
kube2sky is a bridge between Kubernetes and SkyDNS.
kube2sky is a bridge between Kubernetes and SkyDNS.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL