diff --git a/CHANGELOG.md b/CHANGELOG.md index be834cd662..15ffb0203d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,66 @@ # Minikube Release Notes +# Version 0.34.0 - 2019-02-15 + +* Initial implementation of 'console' package for stylized & localized console output 😂 [#3638](https://github.com/kubernetes/minikube/pull/3638) +* Podman 1.0.0 [#3584](https://github.com/kubernetes/minikube/pull/3584) +* fix netstat -f error on linux distros [#3592](https://github.com/kubernetes/minikube/pull/3592) +* addons: Fixes multiple files behavior in files rootfs [#3501](https://github.com/kubernetes/minikube/pull/3501) +* Make hyperkit driver more robust: detect crashing, misinstallation, other process names [#3660](https://github.com/kubernetes/minikube/pull/3660) +* Include pod output in 'logs' command & display detected problems during start [#3673](https://github.com/kubernetes/minikube/pull/3673) +* Upgrade Docker, from 18.06.1-ce to 18.06.2-ce [#3666](https://github.com/kubernetes/minikube/pull/3666) +* Upgrade opencontainers/runc to 0a012df [#3669](https://github.com/kubernetes/minikube/pull/3669) +* Clearer output when re-using VM's so that users know what they are waiting on [#3659](https://github.com/kubernetes/minikube/pull/3659) +* Disable kubelet disk eviction by default [#3671](https://github.com/kubernetes/minikube/pull/3671) +* Run poweroff before delete, only call uninstall if driver is None [#3665](https://github.com/kubernetes/minikube/pull/3665) +* Add DeleteCluster to bootstrapper [#3656](https://github.com/kubernetes/minikube/pull/3656) +* Enable CNI for alternative runtimes [#3617](https://github.com/kubernetes/minikube/pull/3617) +* machine: add parallels support [#953](https://github.com/kubernetes/minikube/pull/953) +* When copying assets from .minikube/files on windows, directories get squashed during transfer. ie /etc/ssl/certs/test.pem becomes ~minikube/etcsslcerts/test.pem. This pull request ensures any window style directories are converted into unix style. [#3258](https://github.com/kubernetes/minikube/pull/3258) +* Updated the default kubernetes version [#3625](https://github.com/kubernetes/minikube/pull/3625) +* Update crictl to v1.13.0 [#3616](https://github.com/kubernetes/minikube/pull/3616) +* Upgrade libmachine to version 0.16.1 [#3619](https://github.com/kubernetes/minikube/pull/3619) +* updated to fedora-29 [#3607](https://github.com/kubernetes/minikube/pull/3607) +* fix stale hyperkit.pid making minikube start hang [#3593](https://github.com/kubernetes/minikube/pull/3593) +* CRI: try to use "sudo podman load" instead of "docker load" [#2757](https://github.com/kubernetes/minikube/pull/2757) +* Use mac as identifier for dhcp [#3572](https://github.com/kubernetes/minikube/pull/3572) +* Still generate docker.service unit, even if unused [#3560](https://github.com/kubernetes/minikube/pull/3560) +* Initial commit of logviewer addon [#3391](https://github.com/kubernetes/minikube/pull/3391) +* Add images and improve parsing for kubernetes 1.11 [#3262](https://github.com/kubernetes/minikube/pull/3262) +* Stop containerd from running, if it is not desired [#3549](https://github.com/kubernetes/minikube/pull/3549) +* Re-remove kube-dns addon [#3556](https://github.com/kubernetes/minikube/pull/3556) +* Update docker env during minikube start if VM has already been created [#3387](https://github.com/kubernetes/minikube/pull/3387) +* Remove redundant newline in `minikube status` [#3565](https://github.com/kubernetes/minikube/pull/3565) +* Fix for issue #3044 - mounted timestamps incorrect with windows host [#3285](https://github.com/kubernetes/minikube/pull/3285) + +Huge thank you for this release towards our contributors: +- Abhilash Pallerlamudi +- Alberto Alvarez +- Anders Björklund +- Anders F Björklund +- Balint Pato +- Bassam Tabbara +- Denis Denisov +- Hidekazu Nakamura +- Himanshu Pandey +- ivans3 +- jay vyas +- Jeff Wu +- Kauê Doretto Grecchi +- Kubernetes Prow Robot +- Leif Ringstad +- Mark Gibbons +- Nicholas Goozeff +- Nicholas Irving +- Rob Richardson +- Roy Lenferink +- Skip Baney +- Thomas Strömberg +- todd densmore +- YAMAMOTO Takashi +- Yugo Horie +- Zhongcheng Lao + # Version 0.33.1 - 2019-01-18 * Install upstream runc into /usr/bin/docker-runc [#3545](https://github.com/kubernetes/minikube/pull/3545) diff --git a/Makefile b/Makefile index 73a65d45f5..200e7c90f3 100755 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ # Bump these on release VERSION_MAJOR ?= 0 -VERSION_MINOR ?= 33 -VERSION_BUILD ?= 1 +VERSION_MINOR ?= 34 +VERSION_BUILD ?= 0 VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD) DEB_VERSION ?= $(VERSION_MAJOR).$(VERSION_MINOR)-$(VERSION_BUILD) INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1) diff --git a/README.md b/README.md index 63953cdc8f..425bc323bd 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ -# Minikube +# minikube [![BuildStatus Widget]][BuildStatus Result] -[![CodeCovWidget]][CodeCovResult] [![GoReport Widget]][GoReport Status] [BuildStatus Result]: https://travis-ci.org/kubernetes/minikube @@ -10,233 +9,124 @@ [GoReport Status]: https://goreportcard.com/report/github.com/kubernetes/minikube [GoReport Widget]: https://goreportcard.com/badge/github.com/kubernetes/minikube -[CodeCovResult]: https://codecov.io/gh/kubernetes/minikube -[CodeCovWidget]: https://codecov.io/gh/kubernetes/minikube/branch/master/graph/badge.svg - -## What is Minikube? +## 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. +minikube implements a local Kubernetes cluster on macOS, Linux, and Windows. +Our [goal](https://github.com/kubernetes/minikube/blob/master/docs/contributors/principles.md) is to enable fast local development and to support all Kubernetes features that fit. We hope you enjoy it! -# Newsflash +## News -- 2018-10-05: minikube v0.30.0 released, addressing **[CVE-2018-1002103](https://github.com/kubernetes/minikube/issues/3208): Dashboard vulnerable to DNS rebinding attack** +* 2019-02-15 - v0.34.0 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v0.34.0)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-0340---2019-02-15)] +* 2019-01-18 - v0.33.1 released to address [CVE-2019-5736](https://www.openwall.com/lists/oss-security/2019/02/11/2) [[download](https://github.com/kubernetes/minikube/releases/tag/v0.33.1)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-0331---2019-01-18)] +* 2019-01-17 - v0.33.0 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v0.33.0)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-0330---2019-01-17)] -## Installation -### macOS -[Homebrew](https://brew.sh/) is a package manager for macOS that can be used to install Minikube. -After installing Homebrew, run the following at a terminal prompt: -```shell -brew cask install minikube -``` -This installs kubernetes-cli package as well. The same can be verified using: -```shell -kubectl version -``` -If it's not installed, install it using: -```shell -brew install kubernetes-cli -``` +## Features -### Linux +minikube runs the official stable release of Kubernetes, with support for standard Kubernetes features like: -```shell -curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ - && sudo install minikube-linux-amd64 /usr/local/bin/minikube -``` +* NodePorts - `minikube service` +* Ingress +* [LoadBalancer](https://github.com/kubernetes/minikube/blob/master/docs/tunnel.md) - `minikube tunnel` +* [Persistent Volumes](https://github.com/kubernetes/minikube/blob/master/docs/persistent_volumes.md) +* ConfigMaps +* RBAC +* Secrets +* Dashboard - `minikube dashboard` +* [Multiple container runtimes](https://github.com/kubernetes/minikube/blob/master/docs/alternative_runtimes.md) - `start --container-runtime` -### Windows +minikube also supports features for developer convenience: -Hyper-V needs to be enabled. For Windows 10 this can only run on these versions: +* [Addons](https://github.com/kubernetes/minikube/blob/master/docs/addons.md) - a marketplace for developers to share configurations for running services on minikube +* [GPU support](https://github.com/kubernetes/minikube/blob/master/docs/gpu.md) - for machine learning +* [Filesystem mounts](https://github.com/kubernetes/minikube/blob/master/docs/host_folder_mount.md) +* Automatic failure analysis -* Windows 10 Enterprise -* Windows 10 Professional -* Windows 10 Education +## Community & Documentation -#### Install with [Chocolatey](https://chocolatey.org/) (recommended): -These commands must be run as administrator. To do this, open the Windows command line by typing 'cmd' in your start menu, right clicking it and choosing 'Run as administrator'. -```shell -choco install minikube -``` -```shell -choco install kubernetes-cli -``` - After it finished installing, close the current command line and restart. Minikube was added to your path automatically. - - To start the minikube cluster, make sure you also have administrator rights. - -```shell -minikube start - ``` - - You might have to specify the vm driver. - ```shell -minikube start --vm-driver hyperv - ``` - -#### Install manually -Download the [minikube-windows-amd64.exe](https://storage.googleapis.com/minikube/releases/latest/minikube-windows-amd64.exe) file, rename it to `minikube.exe` and add it to your path. - - -### Linux Continuous Integration without VM Support -Example with kubectl installation: -```shell -curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube -curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo cp kubectl /usr/local/bin/ && rm kubectl - -export MINIKUBE_WANTUPDATENOTIFICATION=false -export MINIKUBE_WANTREPORTERRORPROMPT=false -export MINIKUBE_HOME=$HOME -export CHANGE_MINIKUBE_NONE_USER=true -mkdir -p $HOME/.kube -mkdir -p $HOME/.minikube -touch $HOME/.kube/config - -export KUBECONFIG=$HOME/.kube/config -sudo -E minikube start --vm-driver=none - -# this for loop waits until kubectl can access the api server that Minikube has created -for i in {1..150}; do # timeout for 5 minutes - kubectl get po &> /dev/null - if [ $? -ne 1 ]; then - break - fi - sleep 2 -done - -# kubectl commands are now able to interact with Minikube cluster -``` - -### Other Ways to Install - -* [Linux] - * [Arch Linux AUR](https://aur.archlinux.org/packages/minikube/) - * [Fedora/CentOS/Red Hat COPR](https://copr.fedorainfracloud.org/coprs/antonpatsev/minikube-rpm/) - * [Void Linux](https://github.com/void-linux/void-packages/tree/master/srcpkgs/minikube/template) - * [openSUSE/SUSE Linux Enterprise](https://build.opensuse.org/package/show/Virtualization:containers/minikube) -* [Windows] Download the [minikube-windows-amd64.exe](https://storage.googleapis.com/minikube/releases/latest/minikube-windows-amd64.exe) file, rename it to `minikube.exe` and add it to your path. - -### Minikube Version Management - -The [asdf](https://github.com/asdf-vm/asdf) tool offers version management for a wide range of languages and tools. On macOS, [asdf](https://github.com/asdf-vm/asdf) is available via Homebrew and can be installed with `brew install asdf`. Then, the Minikube plugin itself can be installed with `asdf plugin-add minikube`. A specific version of Minikube can be installed with `asdf install minikube `. The tool allows you to switch versions for projects using a `.tool-versions` file inside the project. An asdf plugin exists for kubectl as well. - -We also released a Debian package and Windows installer on our [releases page](https://github.com/kubernetes/minikube/releases). If you maintain a Minikube package, please feel free to add it here. - -### Requirements -* [kubectl](https://kubernetes.io/docs/tasks/kubectl/install/) -* macOS - * [Hyperkit driver](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver), [xhyve driver](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#xhyve-driver), [VirtualBox](https://www.virtualbox.org/wiki/Downloads), or [VMware Fusion](https://www.vmware.com/products/fusion) -* Linux - * [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [KVM](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm-driver) - * **NOTE:** Minikube also supports a `--vm-driver=none` option that runs the Kubernetes components on the host and not in a VM. Docker is required to use this driver but no hypervisor. If you use `--vm-driver=none`, be sure to specify a [bridge network](https://docs.docker.com/network/bridge/#configure-the-default-bridge-network) for docker. Otherwise it might change between network restarts, causing loss of connectivity to your cluster. None driver requires docker-ce 18.06 (18.09+ will be compatible from kubernetes version 1.13+, see [#3323](https://github.com/kubernetes/minikube/issues/3323)) . -* Windows - * [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [Hyper-V](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperV-driver) -* VT-x/AMD-v virtualization must be enabled in BIOS -* Internet connection on first run - -## Quickstart - -Here's a brief demo of Minikube usage. -- If you want to change the container runtime, network details, consult notes from your container runtime provider. -- If you want to change the VM driver add the appropriate `--vm-driver=xxx` flag to `minikube start`. Minikube supports -the following drivers: - -* virtualbox -* vmwarefusion -* [KVM2](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver) -* [KVM (deprecated in favor of KVM2)](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm-driver) -* [hyperkit](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver) -* [xhyve](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#xhyve-driver) -* [hyperv](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperV-driver) -* none (**Linux-only**) - this driver can be used to run the Kubernetes cluster components on the host instead of in a VM. This can be useful for CI workloads which do not support nested virtualization. - -```shell -$ minikube start -Starting local Kubernetes v1.7.5 cluster... -Starting VM... -SSH-ing files into VM... -Setting up certs... -Starting cluster components... -Connecting to cluster... -Setting up kubeconfig... -Kubectl is now configured to use the cluster. - -$ kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080 -deployment "hello-minikube" created -$ kubectl expose deployment hello-minikube --type=NodePort -service "hello-minikube" exposed - -# We have now launched an echoserver pod but we have to wait until the pod is up before curling/accessing it -# via the exposed service. -# To check whether the pod is up and running we can use the following: -$ kubectl get pod -NAME READY STATUS RESTARTS AGE -hello-minikube-3383150820-vctvh 1/1 ContainerCreating 0 3s -# We can see that the pod is still being created from the ContainerCreating status -$ kubectl get pod -NAME READY STATUS RESTARTS AGE -hello-minikube-3383150820-vctvh 1/1 Running 0 13s -# We can see that the pod is now Running and we will now be able to curl it: -$ curl $(minikube service hello-minikube --url) -CLIENT VALUES: -client_address=192.168.99.1 -command=GET -real path=/ -... -$ kubectl delete service hello-minikube -service "hello-minikube" deleted -$ kubectl delete deployment hello-minikube -deployment "hello-minikube" deleted -$ minikube stop -Stopping local Kubernetes cluster... -Machine stopped. -``` - -## Interacting With Your Cluster - -### kubectl - -The `minikube start` command creates a "[kubectl context](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#-em-set-context-em-)" 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 use-context minikube`, - -or pass the context on each command like this: `kubectl get pods --context=minikube`. - -### Dashboard - -To access the [Kubernetes Dashboard](http://kubernetes.io/docs/user-guide/ui/), run this command in a shell after starting Minikube to get the address: -```shell -minikube dashboard -``` - -### Services - -To access a service exposed via a node port, run this command in a shell after starting Minikube to get the address: -```shell -minikube service [-n NAMESPACE] [--url] NAME -``` - -## Design - -Minikube uses [libmachine](https://github.com/docker/machine/tree/master/libmachine) for provisioning VMs, and [kubeadm](https://github.com/kubernetes/kubernetes/tree/master/cmd/kubeadm) to provision a kubernetes cluster - -For more information about Minikube, see the [proposal](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/cluster-lifecycle/local-cluster-ux.md). - -## Additional Links +* [**#minikube on Kubernetes Slack**](https://kubernetes.slack.com) - Live chat with minikube developers! +* [minikube-users mailing list](https://groups.google.com/forum/#!forum/minikube-users) +* [minikube-dev mailing list](https://groups.google.com/forum/#!forum/minikube-dev) * [**Advanced Topics and Tutorials**](https://github.com/kubernetes/minikube/blob/master/docs/README.md) -* [**Contributing**](https://github.com/kubernetes/minikube/blob/master/CONTRIBUTING.md) -* [**Development Guide**](https://github.com/kubernetes/minikube/blob/master/docs/contributors/README.md) +* [Contributing](https://github.com/kubernetes/minikube/blob/master/CONTRIBUTING.md) +* [Development Guide](https://github.com/kubernetes/minikube/blob/master/docs/contributors/README.md) +* [Development Roadmap](https://github.com/kubernetes/minikube/blob/master/docs/contributors/roadmap.md) -## Community +## Requirements -* [**#minikube on Kubernetes Slack**](https://kubernetes.slack.com) -* [**Kubernetes Official Forum** ](https://discuss.kubernetes.io) -(If you are posting to the forum, please tag your post with "minikube") +* 4GB of memory (VM reserves 2GB by default), 32GB of disk space +* An internet connection - preferably one that does not require a VPN or SSL proxy to access the internet +* macOS 10.12 (Sierra) or higher + * Requires a hypervisor, such as: + * hyperkit (recommended) + * VirtualBox +* Linux + * libvirt for the KVM driver, or VirtualBox + * VT-x/AMD-v virtualization must be enabled in BIOS +* Windows 10 + * HyperV (Windows 10 Pro) or a 3rd party hypervisor, such as VirtualBox. + * VT-x/AMD-v virtualization must be enabled in BIOS + +## Installation + +* *macOS* with [brew](https://brew.sh/): `brew cask install minikube` +* *macOS*: `curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && sudo install minikube-darwin-amd64 /usr/local/bin/minikube` + +* *Windows with [Chocolatey](https://chocolatey.org/)* `choco install minikube` +* *Windows without Choco* - Download and run the [installer](https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe) + +* *Linux* `curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube` + +For full installation instructions, please see https://kubernetes.io/docs/tasks/tools/install-minikube/ + +### Supported Hypervisors + +`minikube start` defaults to virtualbox, but supports other drivers using the `--vm-driver` argument: + +* [KVM2](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver) - Recommended Linux driver +* [hyperkit](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver) - Recommended macOS driver +* virtualbox - Recommended Windows driver +* [none](https://github.com/kubernetes/minikube/blob/master/docs/vmdriver-none.md) - 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: + +* [hyperv](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperV-driver) +* [vmware](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#vmware-unified-driver) + +## Quick Start + +Start a cluster: + +`minikube start` + +Interact with it using `kubectl`, just like any other kubernetes cluster: + + +``` +$ kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080 +deployment "hello-minikube" created + +$ kubectl expose deployment hello-minikube --type=NodePort +service "hello-minikube" exposed +``` + +Open the 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` diff --git a/deploy/minikube/releases.json b/deploy/minikube/releases.json index 2bc7c78b2e..6a61df59e3 100644 --- a/deploy/minikube/releases.json +++ b/deploy/minikube/releases.json @@ -1,4 +1,12 @@ [ + { + "name": "v0.34.0", + "checksums": { + "darwin": "8932ee06a8db3fae696d97bfefa2d7ad2168ffa3046e0729f39164cf11a78911", + "linux": "97a871bc4d62287b167db1feb1ef167925e2b51d7a0fb4bfe3ac215402e10deb", + "windows": "89e8f10ab97f3440c5dad47f6be96ed49cf9d7dc3a15849f682440a0a3649ea1" + } + }, { "name": "v0.33.1", "checksums": { diff --git a/docs/drivers.md b/docs/drivers.md index 2cb5acfe9e..e43f86bb49 100644 --- a/docs/drivers.md +++ b/docs/drivers.md @@ -10,80 +10,51 @@ The following drivers currently require driver plugin binaries to be present in the host PATH: * [KVM2](#kvm2-driver) -* [KVM](#kvm-driver) * [Hyperkit](#hyperkit-driver) -* [xhyve](#xhyve-driver) * [HyperV](#hyperv-driver) * [VMware](#vmware-unified-driver) #### KVM2 driver -The KVM2 driver is intended to replace KVM driver. -The KVM2 driver is maintained by the minikube team, and is built, tested and released with minikube. - -NOTE: Currently the following instruction doesn't work for -Ubuntu prior to 18.04 because the docker-machine-driver-kvm2 binary -provided by the URL needs libvirt 3.0.0 or later. -You can workaround it by building the binary by yourself. - To install the KVM2 driver, first install and configure the prereqs: -```shell -# Install libvirt and qemu-kvm on your system, e.g. -# Debian/Ubuntu (for older Debian/Ubuntu versions, you may have to use libvirt-bin instead of libvirt-clients and libvirt-daemon-system) -sudo apt install libvirt-clients libvirt-daemon-system qemu-kvm -# Fedora/CentOS/RHEL -sudo yum install libvirt-daemon-kvm qemu-kvm +* Debian or Ubuntu 18.x: `sudo apt install libvirt-clients libvirt-daemon-system qemu-kvm` +* Ubuntu 16.x or older: `sudo apt install libvirt-bin libvirt-daemon-system qemu-kvm` +* Fedora/CentOS/RHEL: `sudo yum install libvirt-daemon-kvm qemu-kvm` -# Add yourself to the libvirt group so you don't need to sudo -# NOTE: For older Debian/Ubuntu versions change the group to `libvirtd` -sudo usermod -a -G libvirt $(whoami) +Then you will need to add yourself to libvirt group (older distributions may use libvirtd instead) -# Update your current session for the group change to take effect -# NOTE: For older Debian/Ubuntu versions change the group to `libvirtd` -newgrp libvirt -``` +`sudo usermod -a -G libvirt $(whoami)` -Then install the driver itself: +Then to join the group with your current user session: + +`newgrp libvirt` + +Now install the driver: ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \ && sudo install docker-machine-driver-kvm2 /usr/local/bin/ ``` -To use the driver you would do: +NOTE: Ubuntu users on a release older than 18.04, or anyone experiencing [#3206: Error creating new host: dial tcp: missing address.](https://github.com/kubernetes/minikube/issues/3206) you will need to build your own driver until [#3689](https://github.com/kubernetes/minikube/issues/3689) is resolved. Building this binary will require [Go v1.11](https://golang.org/dl/) or newer to be installed. + +``` +sudo apt install libvirt-dev +test -d $HOME/go/src/k8s.io/minikube || \ + git clone https://github.com/kubernetes/minikube.git $HOME/go/src/k8s.io/minikube +cd $HOME/go/src/k8s.io/minikube +git pull +make out/docker-machine-driver-kvm2 +install out/docker-machine-driver-kvm2 /usr/local/bin +``` + +To use the driver: ```shell minikube start --vm-driver kvm2 ``` -#### KVM driver - -Minikube is currently tested against [`docker-machine-driver-kvm` v0.10.0](https://github.com/dhiltgen/docker-machine-kvm/releases). - -After following the instructions on the KVM driver releases page, you need to make sure that have the necessary packages and permissions by following these instructions: -```shell -# Install libvirt and qemu-kvm on your system, e.g. -# Debian/Ubuntu (for older Debian/Ubuntu versions, you may have to use libvirt-bin instead of libvirt-clients and libvirt-daemon-system) -sudo apt install libvirt-clients libvirt-daemon-system qemu-kvm -# Fedora/CentOS/RHEL -sudo yum install libvirt-daemon-kvm qemu-kvm - -# Add yourself to the libvirt group so you don't need to sudo -# NOTE: For older Debian/Ubuntu versions change the group to `libvirtd` -sudo usermod -a -G libvirt $(whoami) - -# Update your current session for the group change to take effect -# NOTE: For older Debian/Ubuntu versions change the group to `libvirtd` -newgrp libvirt -``` - -To use the driver you would do: - -```shell -minikube start --vm-driver kvm -``` - #### Hyperkit driver The Hyperkit driver will eventually replace the existing xhyve driver. @@ -115,16 +86,10 @@ If you are using [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) in you *Note: If `dnsmasq.conf` contains `listen-address=127.0.0.1` kubernetes discovers dns at 127.0.0.1:53 and tries to use it using bridge ip address, but dnsmasq replies only to requests from 127.0.0.1* -#### xhyve driver - -From https://github.com/zchee/docker-machine-driver-xhyve#install: +To use the driver: ```shell -brew install docker-machine-driver-xhyve - -# docker-machine-driver-xhyve need root owner and uid -sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve -sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve +minikube start --vm-driver hyperkit ``` #### HyperV driver @@ -133,6 +98,12 @@ Hyper-v users may need to create a new external network switch as described [her On some machines, having **dynamic memory management** turned on for the minikube VM can cause problems of unexpected and random restarts which manifests itself in simply losing the connection to the cluster, after which `minikube status` would simply state `stopped`. Machine restarts are caused due to following Hyper-V error: `The dynamic memory balancer could not add memory to the virtual machine 'minikube' because its configured maximum has been reached`. **Solution**: turned the dynamic memory management in hyper-v settings off (and allocate a fixed amount of memory to the machine). +To use the driver: + +```shell +minikube start --vm-driver hyperv --hyperv-virtual-switch=switch-name +``` + #### VMware unified driver The VMware unified driver will eventually replace the existing vmwarefusion driver. @@ -155,8 +126,8 @@ export LATEST_VERSION=$(curl -L -s -H 'Accept: application/json' https://github. && mv docker-machine-driver-vmware /usr/local/bin/ ``` -To use the driver you would do: +To use the driver: ```shell minikube start --vm-driver vmware -``` \ No newline at end of file +``` diff --git a/installers/darwin/brew-cask/minikube.rb.tmpl b/installers/darwin/brew-cask/minikube.rb.tmpl index aaaeba03a3..6c6f2fc390 100644 --- a/installers/darwin/brew-cask/minikube.rb.tmpl +++ b/installers/darwin/brew-cask/minikube.rb.tmpl @@ -5,7 +5,7 @@ cask 'minikube' do # storage.googleapis.com/minikube was verified as official when first introduced to the cask url "https://storage.googleapis.com/minikube/releases/v#{version}/minikube-darwin-amd64" appcast 'https://github.com/kubernetes/minikube/releases.atom' - name 'Minikube' + name 'minikube' homepage 'https://github.com/kubernetes/minikube' depends_on formula: 'kubernetes-cli'