Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update hypervisor default from "virtualbox" to best-available #4614

Closed
staticdev opened this issue Jun 26, 2019 · 12 comments · Fixed by #5700
Closed

Update hypervisor default from "virtualbox" to best-available #4614

staticdev opened this issue Jun 26, 2019 · 12 comments · Fixed by #5700
Assignees
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Milestone

Comments

@staticdev
Copy link
Contributor

staticdev commented Jun 26, 2019

The exact command to reproduce the issue: minikube start

The full output of the command that failed:

😄 minikube v1.2.0 on linux (amd64)
💿 Downloading Minikube ISO ...
129.33 MB / 129.33 MB [============================================] 100.00% 0s
🔥 Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
E0626 20:40:20.432969 26803 start.go:559] StartHost: create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path

💣 Unable to start VM
❌ Error: [VBOX_NOT_FOUND] create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path
💡 Advice: Install VirtualBox, ensure that VBoxManage is executable and in path, or select an alternative value for --vm-driver
📘 Documentation: https://www.virtualbox.org/wiki/Downloads
⁉️ Related issues:
#3784
#3776

😿 If the above advice does not help, please let us know:
👉 https://github.com/kubernetes/minikube/issues/new

The output of the minikube logs command:

💣 api load: filestore: Docker machine "minikube" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.

😿 Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
👉 https://github.com/kubernetes/minikube/issues/new

The operating system version: Ubuntu 19.04

Comments: Documentation on README says: Requires either the kvm2 driver (recommended), or VirtualBox. I have kvm2 installed.. so it shouldn't give an error. I think even if I didn't have kvm, it should try driver=none by default instead of giving error.

@staticdev staticdev changed the title Minikube 1.2.0 VBOX_NOT_FOUND Minikube 1.2.0 VBOX_NOT_FOUND on Linux Jun 26, 2019
@sharifelgamal
Copy link
Collaborator

Are you sure virtualbox is installed on your machine? What happens if you just try to call VBoxManage?

@sharifelgamal sharifelgamal added co/virtualbox triage/needs-information Indicates an issue needs more information in order to work on it. priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. labels Jun 27, 2019
@staticdev
Copy link
Contributor Author

staticdev commented Jun 27, 2019

@sharifelgamal virtualbox is NOT installed, but kvm2 is. My point is.. If the documentation recommends kvm2 for Linux, minikube start shouldn't have default virtualbox! It should at least have a fallback (as I said in the comments above).

@sharifelgamal
Copy link
Collaborator

That's totally my bad for missing the comment at the bottom. VirtualBox has always been the default driver since it's totally cross-platform and is mentioned as the default in the same documentation where we also recommend kvm2 for linux. You can also set kvm2 to be your default driver in the config as documented here.

@staticdev
Copy link
Contributor Author

staticdev commented Jun 27, 2019

@sharifelgamal that is totally ok. This issue could be an enhancement proposal for a smoother experience with minikube start. It tries the default, if it is not found, instead of error it tries kvm2, if not found it tries none (example on Linux but could use same logic for other OS).

Sidenote: The none try should check if it is sudo. If not gives the suggestion of running sudo or installing a VM driver.

@sharifelgamal sharifelgamal added kind/support Categorizes issue or PR as a support question. and removed priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. triage/needs-information Indicates an issue needs more information in order to work on it. labels Jun 27, 2019
@sharifelgamal
Copy link
Collaborator

We have added the error message when a user doesn't use sudo for the none driver, it will be included in the next release.

As far as auto-picking VM drivers, I think adding that complexity to the code doesn't really add much, the user is generally aware of which VM they want to use ahead of time.

What do you think @tstromberg?

@staticdev
Copy link
Contributor Author

I think this is a very strong statement: "User is generally aware of which VM they want to use ahead of time". Many people (including me) start learning k8s by downloading minikube. I have co-workers which are developers that uses minikube to see how an application behaves in a cluster, and they have virtually no knowledge about VMs and underlying infrastructure.

@afbjorklund
Copy link
Collaborator

Unfortunately I think it is the documentation that is wrong, VirtualBox is still the default driver and we haven’t found a good way to bundle kvm2 yet (it is on the roadmap)

@sharifelgamal
Copy link
Collaborator

VirtualBox is still documented as the default driver, kvm2 is just the recommended one.

@staticdev
Copy link
Contributor Author

staticdev commented Jun 28, 2019

I feel that there is some degree of disagreement coming from the personal taste of minikube developers, which is totally understandable. However, this type of misalignment causes confusion and misinformation to end users. It's up for the team to came to an agreement and choose the best strategy to communicate though the error messages, CLI command help and documentation.

I've been using minikube for some months now and my experience with kvm2 on Linux is better than virtualbox in terms of performance and network issues.

@afbjorklund
Copy link
Collaborator

afbjorklund commented Jun 29, 2019

More a question of whether the documentation should reflect where we want to go or where we are ?
Things like #4391 and #4555 need to be fixed, if kvm2 (libvirt) is supposed to work out-of-the-box...

The ultimate goal is to have minikube use the (so called) "native" virtualization, for each platform.
This is further complicated by the use of docker machine, which is still a third-party - even if modified.

I don't think we should use the none driver by default, it is very different (and not recommended).
Our current again(!) recommendation is to start a VM in that case, and then run none driver on it.

Eventually we will have a situation where it is ok to start minikube in "VM-free" mode (see #4389)
But at the moment it really does have all the drawbacks listed in the documentation for the none driver.

@tstromberg tstromberg changed the title Minikube 1.2.0 VBOX_NOT_FOUND on Linux Driver should automatically select an installed hypervisor if virtualbox is unavailable Jul 17, 2019
@tstromberg tstromberg added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. labels Jul 17, 2019
@tstromberg tstromberg changed the title Driver should automatically select an installed hypervisor if virtualbox is unavailable Update hypervisor default from "virtualbox" to best-available Jul 17, 2019
@afbjorklund
Copy link
Collaborator

afbjorklund commented Aug 2, 2019

@blueelvis : are we good to go, on recommending the hyperv driver for Windows 10+ ?

#4846 #4783

Or do we need some outstanding items like CI support still, that is blocking that change ?

#3591 @medyagh

@blueelvis
Copy link
Contributor

@afbjorklund - I am waiting for the upcoming release where the bug of stopping the minikube cluster on Hyper-V is fixed. The bugs which you have mentioned are still in my mind (Hoping to finish them this weekend).

And yes, going forward, I would recommend Hyper-V for Windows 10+ and we do require the CI support for the long run. It is not a blocking change as from my experience with minikube and Hyper-V, its pretty stable (Except shutting down...).

-Pranav

@tstromberg tstromberg added this to the v1.4.0 Candidate milestone Aug 6, 2019
@tstromberg tstromberg removed this from the v1.4.0 Candidate milestone Aug 6, 2019
@tstromberg tstromberg removed co/virtualbox kind/support Categorizes issue or PR as a support question. labels Aug 23, 2019
@tstromberg tstromberg added this to the v1.5.0-candidate milestone Sep 13, 2019
@tstromberg tstromberg added the kind/feature Categorizes issue or PR as related to a new feature. label Sep 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants