minikube: minikube with xhyve: Error starting stopped host: Something went wrong running an SSH command!
BUG REPORT
Minikube version: v0.18.0
Environment:
- OS: Mac OS Sierra 10.12.4
- VM Driver: xhyve
- ISO version: v0.18.0
What happened:
After upgrading to latest docker-machine-driver-xhyve today, version 0.3.2, minikube doesn’t work properly anymore. When I initially setup minikube (minikube delete; minikube start), everything seems to works fine. But if I minikube ssh and then exit I get:
E0422 07:21:08.706220 14811 ssh.go:44] Error attempting to ssh/run-ssh-command: exit status 127
If I stop minikube and start it again, I get:
cb@Sirhc ~ $ minikube start
Starting local Kubernetes cluster...
Starting VM...
E0422 07:22:10.969284 14844 start.go:116] Error starting host: Error starting stopped host: Something went wrong running an SSH command!
command : echo -e "#/bin/bash\nsudo mkdir -p /Users\nsudo mount -t 9p -o version=9p2000 -o trans=virtio -o uname=cb -o dfltuid=$(id -u docker) -o dfltgid=50 -o access=any host /Users" | sudo tee /var/lib/boot2docker/bootlocal.sh && sudo chmod +x /var/lib/boot2docker/bootlocal.sh && /var/lib/boot2docker/bootlocal.sh
err : exit status 32
output : #/bin/bash
sudo mkdir -p /Users
sudo mount -t 9p -o version=9p2000 -o trans=virtio -o uname=cb -o dfltuid=1001 -o dfltgid=50 -o access=any host /Users
mount: host is already mounted or /Users busy
host is already mounted on /Users
Retrying.
E0422 07:22:10.970169 14844 start.go:122] Error starting host: Error starting stopped host: Something went wrong running an SSH command!
command : echo -e "#/bin/bash\nsudo mkdir -p /Users\nsudo mount -t 9p -o version=9p2000 -o trans=virtio -o uname=cb -o dfltuid=$(id -u docker) -o dfltgid=50 -o access=any host /Users" | sudo tee /var/lib/boot2docker/bootlocal.sh && sudo chmod +x /var/lib/boot2docker/bootlocal.sh && /var/lib/boot2docker/bootlocal.sh
err : exit status 32
output : #/bin/bash
sudo mkdir -p /Users
sudo mount -t 9p -o version=9p2000 -o trans=virtio -o uname=cb -o dfltuid=1001 -o dfltgid=50 -o access=any host /Users
mount: host is already mounted or /Users busy
host is already mounted on /Users
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 15
- Comments: 30 (10 by maintainers)
Same here:
Minikube version: v0.18.0
Environment:
Installed
minikubeanddocker-machine-driver-xhyveyesterday. Startingminikubefor the first time went smoothly. Today, when I wanted to restartminikubeI got:Reverting to
minikube’s default VM driver fixes the problem:@belldina I run this command, and it works.
kubectl config use-context minikubev0.3.3 was released; Homebrew PR submitted: https://github.com/Homebrew/homebrew-core/pull/15079
Result after installing from Homebrew via the PR:
👍
Anytime I’ve run into this issue, I’ve been able to successfully work around it via the context switch posted a above:
kubectl config use-context minikubeminikube start --vm-driver=xhyveand if that doesn’t work, then ( more drastically, since it deletes all state, containers, etc… ):
minikube deletefollowed by the commands above…Of course, this is likely more destructive that other possible solutions, but I mainly use minikube and its embedded docker repo as a staging area, so deleting/re-creating them is rarely a problem for that use case.
I can confirm that @samhalpa workaround works as I was having the same problem with the same versions reported in the original issue above.
Minikube version
v0.19.1still affected by this issue.I also see this issue pop up if I forget to reset my kubectl config to the minikube context since I have multiple contexts around… so remember to jump back to minikube context, i.e.
kubectl config use-context minikubeminikube start --vm-driver=xhyve@r2d4 I don’t. With fresh install:
Closing this, it should be fixed with the latest version of docker-machine-driver-xhyve https://github.com/zchee/docker-machine-driver-xhyve/releases/tag/v0.3.3
Please read https://github.com/kubernetes/minikube/issues/1400#issuecomment-298506787. The issue is fixed in the xhyve driver, however there has not been a release of for that binary yet.
@belldina Right, deleting the cluster always solves it but, like you said, while practically often easy to deal with, isn’t really a solution to this problem in the true sense. It’s the minikube equivalent of “unplug it and plug it back in.” Obviously, it shouldn’t happen in the first place. 😃
@belldina You might want to check out https://github.com/ahmetb/kubectx by @ahmetb. Pretty cool tool to help you switch between your contexts.
Same here, Was using kube-solo then switched to minikube. However, if I run
sudo chown root:wheel /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyveandsudo chmod u+s /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyvebefore the
command, I can spin up the cluster.
Ah, this was actually my fault from a PR in the xhyve driver. Previously we were calling
I switched these since there was sometimes a race condition in setting up the mounts before we were able to get an IP. However, it looks like on a start/stop, the mount already exists and
d.setupMountswas silently throwing an error, which we are now catching.https://github.com/zchee/docker-machine-driver-xhyve/pull/161/files
We should probably ignore the error from setup mounts, even though that would mask actual errors.