Unify driver doc layout, add none, virtualbox, hyperkit
parent
5941530271
commit
758c9dcdb4
|
@ -55,19 +55,19 @@ If the above command outputs "no":
|
|||
{{% tabs %}}
|
||||
|
||||
{{% tab "VirtualBox" %}}
|
||||
{{% readfile file="/docs/Getting started/_virtualbox.md" %}}
|
||||
{{% readfile file="/docs/Getting started/includes/virtualbox.md" %}}
|
||||
{{% /tab %}}
|
||||
{{% tab "KVM" %}}
|
||||
|
||||
### Prerequisites Installation
|
||||
|
||||
{{% readfile file="/docs/Reference/Drivers/_kvm2_prereqs_install.md" %}}
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/kvm2_prereqs_install.md" %}}
|
||||
|
||||
### Driver Installation
|
||||
|
||||
{{% readfile file="/docs/Reference/Drivers/_kvm2_driver_install.md" %}}
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/kvm2_driver_install.md" %}}
|
||||
|
||||
### Using the kvm2 driver
|
||||
### Usage
|
||||
|
||||
```shell
|
||||
minikube start --vm-driver=kvm2
|
||||
|
@ -96,4 +96,4 @@ Please see the [docs/reference/drivers/none](none driver) documentation for more
|
|||
{{% /tab %}}
|
||||
{{% /tabs %}}
|
||||
|
||||
{{% readfile file="/docs/Getting started/_post_install.md" %}}
|
||||
{{% readfile file="/docs/Getting started/includes/post_install.md" %}}
|
||||
|
|
|
@ -37,32 +37,20 @@ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin
|
|||
|
||||
{{% tabs %}}
|
||||
{{% tab "VirtualBox" %}}
|
||||
{{% readfile file="/docs/Getting started/_virtualbox.md" %}}
|
||||
{{% readfile file="/docs/Getting started/includes/virtualbox.md" %}}
|
||||
{{% /tab %}}
|
||||
{{% tab "Hyperkit" %}}
|
||||
|
||||
The easiest way to install hyperkit is using the [Brew Package Manager](https://brew.sh/):
|
||||
|
||||
```shell
|
||||
brew install hyperkit
|
||||
```
|
||||
### Prerequisites Installation
|
||||
|
||||
To use minikube and hyperkit reliably, please download and install our improved fork of the driver:
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/hyperkit_prereqs_install.md" %}}
|
||||
|
||||
```shell
|
||||
curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit \
|
||||
&& sudo install docker-machine-driver-hyperkit /usr/local/bin/
|
||||
```
|
||||
### Driver Installation
|
||||
|
||||
This driver requires root privileges to create and destroy network interfaces:
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/hyperkit_driver_install.md" %}}
|
||||
|
||||
```shell
|
||||
sudo chown root:wheel /usr/local/bin
|
||||
docker-machine-driver-hyperkit \
|
||||
&& sudo chmod u+s /usr/local/bin/docker-machine-driver-hyperkit
|
||||
```
|
||||
|
||||
### Using the hyperkit driver
|
||||
### Usage
|
||||
|
||||
```shell
|
||||
minikube start --vm-driver=hyperkit
|
||||
|
@ -108,4 +96,4 @@ minikube config set vm-driver vmwarefusion
|
|||
|
||||
{{% /tabs %}}
|
||||
|
||||
{{% readfile file="/docs/Getting started/_post_install.md" %}}
|
||||
{{% readfile file="/docs/Getting started/includes/post_install.md" %}}
|
|
@ -51,12 +51,11 @@ If you see the following output, your system already has a Hypervisor installed
|
|||
|
||||
```
|
||||
Hyper-V Requirements: A hypervisor has been detected.
|
||||
Features required for Hyper-V will not be displayed.
|
||||
```
|
||||
|
||||
{{% tabs %}}
|
||||
{{% tab "VirtualBox" %}}
|
||||
{{% readfile file="/docs/Getting started/_virtualbox.md" %}}
|
||||
{{% readfile file="/docs/Getting started/includes/virtualbox.md" %}}
|
||||
{{% /tab %}}
|
||||
{{% tab "Hyper-V" %}}
|
||||
|
||||
|
@ -77,4 +76,4 @@ minikube config set vm-driver hyperv
|
|||
{{% /tab %}}
|
||||
{{% /tabs %}}
|
||||
|
||||
{{% readfile file="/docs/Getting started/_post_install.md" %}}
|
||||
{{% readfile file="/docs/Getting started/includes/post_install.md" %}}
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
title: "HyperKit"
|
||||
linkTitle: "HyperKit"
|
||||
weight: 1
|
||||
date: 2018-08-08
|
||||
description: >
|
||||
HyperKit driver
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
[HyperKit](https://github.com/moby/hyperkit) is an open-source hypervisor for macOS hypervisor, optimized for lightweight virtual machines and container deployment.
|
||||
|
||||
## Requirements
|
||||
|
||||
- macOS High Sierra 10.12 (or newer)
|
||||
- HyperKit
|
||||
|
||||
## Installing Prerequisites
|
||||
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/hyperkit_prereqs_install.md" %}}
|
||||
|
||||
## Driver installation
|
||||
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/hyperkit_driver_install.md" %}}
|
||||
|
||||
## Usage
|
||||
|
||||
```shell
|
||||
minikube start --vm-driver=hyperkit
|
||||
```
|
||||
To make hyperkit the default driver:
|
||||
|
||||
```shell
|
||||
minikube config set vm-driver hyperkit
|
||||
```
|
||||
|
||||
## Special features
|
||||
|
||||
minikube start supports some VirtualBox specific flags:
|
||||
|
||||
* **\--host-only-cidr**: The CIDR to be used for the minikube VM (default "192.168.99.1/24")
|
||||
* **\--no-vtx-check**: Disable checking for the availability of hardware virtualization
|
||||
|
||||
## Issues
|
||||
|
||||
### Local DNS server conflict
|
||||
|
||||
If you are using dnsmasq in your setup and cluster creation fails (stuck at kube-dns initialization) you might need to add listen-address=192.168.64.1 to dnsmasq.conf.
|
||||
|
||||
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
|
||||
|
||||
### Other
|
||||
|
||||
* [Full list of open 'hyperkit' driver issues](https://github.com/kubernetes/minikube/labels/co%2Fhyperkit)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
* Run `docker-machine-driver-hyperkit version` to verify that the version matches minikubes version. Example output:
|
||||
|
||||
```
|
||||
version: v1.3.0
|
||||
commit: 43969594266d77b555a207b0f3e9b3fa1dc92b1f
|
||||
````
|
||||
|
||||
* Run `minikube start --alsologtostderr -v=7` to debug crashes
|
|
@ -0,0 +1,7 @@
|
|||
Download and install the latest minikube hyperkit driver:
|
||||
|
||||
```shell
|
||||
curl -LO https://storage.googleapis.com/minikube/releases/latest/
|
||||
docker-machine-driver-hyperkit \
|
||||
&& sudo install -o root -m 4755 docker-machine-driver-hyperkit /usr/local/bin/
|
||||
```
|
|
@ -0,0 +1,7 @@
|
|||
* If you have Docker for Desktop installed, you already have hyperkit installed.
|
||||
* If you have the [Brew Package Manager](https://brew.sh/) installed, run:
|
||||
|
||||
```shell
|
||||
brew install hyperkit
|
||||
```
|
||||
* To install HyperKit manually, see the [HyperKit on GitHub](https://github.com/moby/hyperkit)
|
|
@ -8,7 +8,7 @@ Proper installation of KVM and libvirt is highly specific to each Linux distribu
|
|||
* [RedHat](https://access.redhat.com/articles/1344173#Q_how-install-virtualization-packages)
|
||||
* [Ubuntu](https://help.ubuntu.com/community/KVM/Installation)
|
||||
|
||||
Once configured, validate that libvirt shows no warning or error messages:
|
||||
Once configured, validate that libvirt reports no errors:
|
||||
|
||||
```shell
|
||||
virt-host-validate
|
|
@ -5,7 +5,7 @@ weight: 1
|
|||
date: 2017-01-05
|
||||
date: 2018-08-05
|
||||
description: >
|
||||
Linux KVM (Kernel-based Virtual Machine Driver
|
||||
Linux KVM (Kernel-based Virtual Machine) driver
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
@ -17,15 +17,15 @@ description: >
|
|||
- libvirt v1.3.1 or higher
|
||||
- qemu-kvm v2.0 or higher
|
||||
|
||||
## Prerequisites Installation
|
||||
## Installing Prerequisites
|
||||
|
||||
{{% readfile file="/docs/Reference/Drivers/_kvm2_prereqs_install.md" %}}
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/kvm2_prereqs_install.md" %}}
|
||||
|
||||
## Driver Installation
|
||||
## Driver installation
|
||||
|
||||
{{% readfile file="/docs/Reference/Drivers/_kvm2_driver_install.md" %}}
|
||||
{{% readfile file="/docs/Reference/Drivers/includes/kvm2_driver_install.md" %}}
|
||||
|
||||
## Using the kvm2 driver
|
||||
## Usage
|
||||
|
||||
```shell
|
||||
minikube start --vm-driver=kvm2
|
||||
|
@ -36,7 +36,7 @@ To make kvm2 the default for future invocations, run:
|
|||
minikube config set vm-driver kvm2
|
||||
```
|
||||
|
||||
## Driver Differences
|
||||
## Special features
|
||||
|
||||
The `minikube start` command supports 3 additional kvm specific flags:
|
||||
|
||||
|
@ -44,7 +44,7 @@ The `minikube start` command supports 3 additional kvm specific flags:
|
|||
* **\--hidden**: Hide the hypervisor signature from the guest in minikube
|
||||
* **\--kvm-network**: The KVM network name
|
||||
|
||||
## Known Issues
|
||||
## Issues
|
||||
|
||||
* `minikube` will repeatedly for root password if user is not in the correct `libvirt` group [#3467](https://github.com/kubernetes/minikube/issues/3467)
|
||||
* `Machine didn't return an IP after 120 seconds` when firewall prevents VM network access [#3566](https://github.com/kubernetes/minikube/issues/3566)
|
||||
|
@ -56,7 +56,7 @@ Also see [co/kvm2 open issues](https://github.com/kubernetes/minikube/labels/co%
|
|||
|
||||
## Troubleshooting
|
||||
|
||||
* Run `minikube start --alsologtostderr -v=7` to debug crashes related to kvm
|
||||
* Run `docker-machine-kvm2 version` to verify the kvm2 driver executes properly.
|
||||
* Run `minikube start --alsologtostderr -v=7` to debug crashes
|
||||
* Run `docker-machine-driver-kvm2 version` to verify the kvm2 driver executes properly.
|
||||
* Read [How to debug Virtualization problems](https://fedoraproject.org/wiki/How_to_debug_Virtualization_problems)
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
title: "none"
|
||||
linkTitle: "none"
|
||||
weight: 1
|
||||
date: 2017-01-05
|
||||
date: 2018-08-05
|
||||
description: >
|
||||
Linux none (bare-metal) driver
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
This document is written for system integrators who are familiar with minikube, and wish to run it within a customized VM environment. The `none` driver allows advanced minikube users to skip VM creation, allowing minikube to be run on a user-supplied VM.
|
||||
|
||||
## Features
|
||||
|
||||
* Ability to run without the creation of an additional VM
|
||||
* Fast setup and teardown
|
||||
|
||||
## Requirements
|
||||
|
||||
VM running a systemd-based Linux distribution ([see #2704](https://github.com/kubernetes/minikube/issues/2704))
|
||||
|
||||
## Usage
|
||||
|
||||
The none driver requires minikube to be run as root, until [#3760](https://github.com/kubernetes/minikube/issues/3760) can be addressed.
|
||||
|
||||
```shell
|
||||
sudo minikube start --vm-driver=none
|
||||
```
|
||||
|
||||
To make none the default for future invocations, run:
|
||||
|
||||
```shell
|
||||
sudo minikube config set vm-driver none
|
||||
```
|
||||
|
||||
## Issues
|
||||
|
||||
### Decreased security
|
||||
|
||||
* minikube starts services that may be available on the Internet. Please ensure that you have a firewall to protect your host from unexpected access. For instance:
|
||||
* apiserver listens on TCP *:8443
|
||||
* kubelet listens on TCP *:10250 and *:10255
|
||||
* kube-scheduler listens on TCP *:10259
|
||||
* kube-controller listens on TCP *:10257
|
||||
* Containers may have full access to your filesystem.
|
||||
* Containers may be able to execute arbitrary code on your host, by using container escape vulnerabilities such as [CVE-2019-5736](https://access.redhat.com/security/vulnerabilities/runcescape). Please keep your release of minikube up to date.
|
||||
|
||||
### Decreased reliability
|
||||
|
||||
* minikube with the none driver may be tricky to configure correctly at first, because there are many more chances for interference with other locally run services, such as dnsmasq.
|
||||
|
||||
* When run in `none` mode, minikube has no built-in resource limit mechanism, which means you could deploy pods which would consume all of the hosts resources.
|
||||
|
||||
* minikube and the Kubernetes services it starts may interfere with other running software on the system. For instance, minikube will start and stop container runtimes via systemd, such as docker, containerd, cri-o.
|
||||
|
||||
### Data loss
|
||||
|
||||
With the `none` driver, minikube will overwrite the following system paths:
|
||||
|
||||
* /usr/bin/kubeadm - Updated to match the exact version of Kubernetes selected
|
||||
* /usr/bin/kubelet - Updated to match the exact version of Kubernetes selected
|
||||
* /etc/kubernetes - configuration files
|
||||
|
||||
These paths will be erased when running `minikube delete`:
|
||||
|
||||
* /data/minikube
|
||||
* /etc/kubernetes/manifests
|
||||
* /var/lib/minikube
|
||||
|
||||
As Kubernetes has full access to both your filesystem as well as your docker images, it is possible that other unexpected data loss issues may arise.
|
||||
|
||||
### Other
|
||||
|
||||
* `-p` (profiles) are unsupported: It is not possible to run more than one `--vm-driver=none` instance
|
||||
* Many `minikube` commands are not supported, such as: `dashboard`, `mount`, `ssh`
|
||||
* minikube with the `none` driver has a confusing permissions model, as some commands need to be run as root ("start"), and others by a regular user ("dashboard")
|
||||
* CoreDNS detects resolver loop, goes into CrashloopBackoff - [#3511](https://github.com/kubernetes/minikube/issues/3511)
|
||||
* Some versions of Linux have a version of docker that is newer then what Kubernetes expects. To overwrite this, run minikube with the following parameters: `sudo -E minikube start --vm-driver=none --kubernetes-version v1.11.8 --extra-config kubeadm.ignore-preflight-errors=SystemVerification`
|
||||
|
||||
* [Full list of open 'none' driver issues](https://github.com/kubernetes/minikube/labels/co%2Fnone-driver)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
* Run `minikube start --alsologtostderr -v=4` to debug crashes
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
title: "VirtualBox"
|
||||
linkTitle: "VirtualBox"
|
||||
weight: 1
|
||||
date: 2018-08-08
|
||||
description: >
|
||||
VirtualBox driver
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
VirtualBox is the oldest and most stable VM driver for minikube.
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
- [https://www.virtualbox.org/wiki/Downloads](VirtualBox) 5.2 or higher
|
||||
|
||||
## Usage
|
||||
|
||||
minikube currently uses VirtualBox by default, but it can also be explicitly set:
|
||||
|
||||
```shell
|
||||
minikube start --vm-driver=virtualbox
|
||||
```
|
||||
To make virtualbox the default driver:
|
||||
|
||||
```shell
|
||||
minikube config set vm-driver virtualbox
|
||||
```
|
||||
|
||||
## Special features
|
||||
|
||||
minikube start supports some VirtualBox specific flags:
|
||||
|
||||
* **\--host-only-cidr**: The CIDR to be used for the minikube VM (default "192.168.99.1/24")
|
||||
* **\--no-vtx-check**: Disable checking for the availability of hardware virtualization
|
||||
|
||||
## Issues
|
||||
|
||||
* [Full list of open 'virtualbox' driver issues](https://github.com/kubernetes/minikube/labels/co%2Fvirtualbox)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
* Run `minikube start --alsologtostderr -v=7` to debug crashes
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
title: "Continuous Integration"
|
||||
linkTitle: "Continuous Integration"
|
||||
weight: 1
|
||||
date: 2018-01-02
|
||||
description: >
|
||||
Using minikube for Continuous Integration
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Most continuous integration environments are already running inside a VM, and may not supported nested virtualization. The `none` driver was designed for this use case.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- VM running a systemd based Linux distribution
|
||||
|
||||
## Tutorial
|
||||
|
||||
Here is an example, that runs minikube from a non-root user, and ensures that the latest stable kubectl is installed:
|
||||
|
||||
```shell
|
||||
curl -Lo minikube \
|
||||
https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
|
||||
&& sudo install minikube /usr/local/bin/
|
||||
|
||||
kv=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
|
||||
curl -Lo kubectl \
|
||||
https://storage.googleapis.com/kubernetes-release/release/$kv/bin/linux/amd64/kubectl \
|
||||
&& sudo install kubectl /usr/local/bin/
|
||||
|
||||
export MINIKUBE_WANTUPDATENOTIFICATION=false
|
||||
export MINIKUBE_WANTREPORTERRORPROMPT=false
|
||||
export MINIKUBE_HOME=$HOME
|
||||
export CHANGE_MINIKUBE_NONE_USER=true
|
||||
export KUBECONFIG=$HOME/.kube/config
|
||||
|
||||
mkdir -p $HOME/.kube $HOME/.minikube
|
||||
touch $KUBECONFIG
|
||||
|
||||
sudo -E minikube start --vm-driver=none
|
||||
```
|
||||
|
||||
## Troubleshooting
|
Loading…
Reference in New Issue