86 lines
2.4 KiB
Markdown
86 lines
2.4 KiB
Markdown
# Minikube
|
|
|
|
Run Kubernetes locally
|
|
|
|
[![Build Status](https://travis-ci.org/kubernetes/minikube.svg?branch=master)](https://travis-ci.org/kubernetes/minikube)
|
|
|
|
## Background
|
|
|
|
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.
|
|
|
|
## Design
|
|
|
|
Minikube uses [libmachine](https://github.com/docker/machine/tree/master/libmachine) for provisioning VMs, and [localkube](https://github.com/redspread/localkube)
|
|
for running the cluster.
|
|
|
|
For more information about minikube, see the [proposal](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/local-cluster-ux.md).
|
|
|
|
## Goals
|
|
|
|
* Works across multiple OSes - OS X, Linux and Windows primarily.
|
|
* Single command setup and teardown UX.
|
|
* Unified UX across OSes
|
|
* Minimal dependencies on third party software.
|
|
* Minimal resource overhead.
|
|
* Replace any other alternatives to local cluster deployment.
|
|
|
|
## Non Goals
|
|
|
|
* Simplifying kubernetes production deployment experience. Kube-deploy is attempting to tackle this problem.
|
|
* Supporting all possible deployment configurations of Kubernetes like various types of storage, networking, etc.
|
|
|
|
|
|
## Build Instructions
|
|
|
|
```shell
|
|
make minikube
|
|
```
|
|
|
|
## Run Instructions
|
|
|
|
Start the cluster with:
|
|
|
|
```console
|
|
$ ./out/minikube start
|
|
Starting local Kubernetes cluster...
|
|
2016/04/19 11:41:26 Machine exists!
|
|
2016/04/19 11:41:27 Kubernetes is available at http://192.168.99.100:8080.
|
|
2016/04/19 11:41:27 Run this command to use the cluster:
|
|
2016/04/19 11:41:27 kubectl config set-cluster minikube --insecure-skip-tls-verify=true --server=http://192.168.99.100:8080
|
|
```
|
|
|
|
Access the cluster by adding `-s=http://192.168.x.x:8080` to every `kubectl` command, or run the commands below:
|
|
|
|
```shell
|
|
kubectl config set-cluster minikube --insecure-skip-tls-verify=true --server=http://192.168.99.100:8080
|
|
kubectl config set-context minikube --cluster=minikube
|
|
kubectl config use-context minikube
|
|
```
|
|
|
|
by running those commands, you may use `kubectl` normally
|
|
|
|
## Development
|
|
|
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for an overview of how to send pull requests.
|
|
|
|
### Running Tests
|
|
|
|
#### Unit Tests
|
|
|
|
Unit tests are run on Travis before code is merged. To run as part of a development cycle:
|
|
|
|
```shell
|
|
make test
|
|
```
|
|
|
|
#### Integration Tests
|
|
|
|
Integration tests are currently run manually.
|
|
To run them, build the binary and run the tests:
|
|
|
|
```shell
|
|
make integration
|
|
```
|