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

Mac M1: hyperkit not supported. #11885

Open
NitichaiSawangsai opened this issue Jul 2, 2021 · 24 comments
Open

Mac M1: hyperkit not supported. #11885

NitichaiSawangsai opened this issue Jul 2, 2021 · 24 comments
Labels
co/hyperkit Hyperkit related issues kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence.

Comments

@NitichaiSawangsai
Copy link

Mac M1

Steps to reproduce the issue:

  1. arch -x86_64 brew install hyperkit
  2. minikube start --vm=true
  3. minikube start --driver=hyperkit

Full output of failed command:

$ minikube start --driver=hyperkit 
😄 minikube v1.21.0 on Darwin 11.4 (arm64) ✨ Using the hyperkit driver based on user configuration ❌ Exiting due to DRV_UNSUPPORTED_OS: The driver 'hyperkit' is not supported on darwin/arm64
@spowelljr
Copy link
Member

Hi @NitichaiSawangsai, thanks for reporting your issue!

As shown in the message, minikube does not yet support hyperkit on M1 Macs.

This is something we're hoping to support in the future. For now you can use the Docker driver.

Hope that helps, thanks for using minikube!

@spowelljr spowelljr added co/hyperkit Hyperkit related issues kind/support Categorizes issue or PR as a support question. labels Jul 2, 2021
@medyagh medyagh changed the title minikube in Mac M1 Mac M1: hyperkit not supported. Jul 4, 2021
@andriyDev andriyDev added kind/feature Categorizes issue or PR as related to a new feature. and removed kind/support Categorizes issue or PR as a support question. labels Aug 4, 2021
@spowelljr spowelljr added the priority/backlog Higher priority than priority/awaiting-more-evidence. label Aug 5, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 3, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Dec 3, 2021
@sharifelgamal sharifelgamal removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Dec 15, 2021
@sharifelgamal
Copy link
Collaborator

We're going to work on implementing a qemu driver for a vm driver on arm64 darwin.

@cedricjacobs
Copy link

We're going to work on implementing a qemu driver for a vm driver on arm64 darwin.

Any clue when it is planned to be released?

@spowelljr spowelljr added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Jan 24, 2022
@spowelljr
Copy link
Member

Any clue when it is planned to be released?

The current tentative timeline puts it the end of Q2 2022.

@ProbStub
Copy link

@spowelljr @sharifelgamal I totally love my M1 but my love for Docker is much more limited and I see the issue remains unassigned. Is there a recommended best practice as a workaround while this is being worked on, e.g. using podman?

@afbjorklund
Copy link
Collaborator

afbjorklund commented Mar 13, 2022

You can use lima, as a workaround.

brew install lima

limactl start https://github.com/lima-vm/lima/blob/master/examples/k8s.yaml

It will use ubuntu and containerd.

@spowelljr
Copy link
Member

We just released minikube v1.26.0-beta.0 that supports the QEMU driver --driver=qemu2.

https://github.com/kubernetes/minikube/releases/tag/v1.26.0-beta.0

@greenchapter
Copy link

We just released minikube v1.26.0-beta.0 that supports the QEMU driver --driver=qemu2.

https://github.com/kubernetes/minikube/releases/tag/v1.26.0-beta.0

Looks on the first sight very good 👏

@tedgoddard
Copy link

@spowelljr is it possible to specify the path to qemu? I get

🤷 Exiting due to PROVIDER_QEMU2_NOT_FOUND: The 'qemu2' provider was not found: lookup qemu: open /opt/homebrew/Cellar/qemu: no such file or directory

with an installation to /usr/local from source.

which qemu-system-aarch64
/usr/local/bin/qemu-system-aarch64

(This is also qemu 7, so perhaps I should install qemu 6)

@sharifelgamal
Copy link
Collaborator

@spowelljr is it possible to specify the path to qemu? I get

🤷 Exiting due to PROVIDER_QEMU2_NOT_FOUND: The 'qemu2' provider was not found: lookup qemu: open /opt/homebrew/Cellar/qemu: no such file or directory

with an installation to /usr/local from source.

which qemu-system-aarch64
/usr/local/bin/qemu-system-aarch64

(This is also qemu 7, so perhaps I should install qemu 6)

Not yet, this is something we're going to fix before the GA v1.26 release. Right now, we only look for a qemu installation from brew.

#14146 has more details about what's missing in the qemu driver.

@sharifelgamal
Copy link
Collaborator

@tedgoddard I merged a PR that should allow you to specify the path of the firmware file (usually edk2-aarch64-code.fd) you want to to use for qemu. We just look for a qemu-system-* binary in your PATH, so that should not be an issue. 

@a1ex-var1amov
Copy link

Hi everyone,
Has anybody else faced this with qemu2?

❯ minikube start --driver qemu2 --memory=4Gb
😄  minikube v1.26.0-beta.1 on Darwin 12.4 (arm64)
✨  Using the qemu2 (experimental) driver based on existing profile
❗  You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.
👍  Starting control plane node minikube in cluster minikube
🔄  Restarting existing qemu2 VM for "minikube" ...
OUTPUT:
ERROR: qemu-system-aarch64: Addressing limited to 32 bits, but memory exceeds it by 1073741824 bytes

@sharifelgamal
Copy link
Collaborator

yeah, this is a known issue (seen in #14273) that should be fixed at HEAD, and will be fixed when the GA v1.26.0 minikube release is out.

@a1ex-var1amov
Copy link

@sharifelgamal thank you so much!

@0xleyth
Copy link

0xleyth commented Sep 8, 2022

I got it to work by doing:

brew install qemu

After the download, I did this:

minikube start --driver qemu --memory=4Gb

@greenchapter
Copy link

I got it to work by doing:

brew install qemu

After the download, I did this:

minikube start --driver qemu --memory=4Gb

Thanks that works, but it uses qemu and not Hyperkit 😉

@afbjorklund
Copy link
Collaborator

HyperKit is Intel-only, so the alternative to QEMU will be the new Virtualization.framework driver (whenever that is ready)

@greenchapter
Copy link

HyperKit is Intel-only, so the alternative to QEMU will be the new Virtualization.framework driver (whenever that is ready)

Ya, you're totally right 👍

@rajjaiswalsaumya
Copy link

rajjaiswalsaumya commented Oct 25, 2022

Can we please document this to the quickstart for mac m1 ?

@dmiyamasu
Copy link

Can we please document this to the quickstart for mac m1 ?

Has the quickstart documentation been started for mac m1? I don't see the updates published.

@greenchapter
Copy link

Can we please document this to the quickstart for mac m1 ?

Has the quickstart documentation been started for mac m1? I don't see the updates published.

@dmiyamasu and @rajjaiswalsaumya there is a Apple Silicon documentation here → https://minikube.sigs.k8s.io/docs/start/ and also the QEMU startup flags are explained on the drivers page → https://minikube.sigs.k8s.io/docs/drivers/qemu/

I think that will help.

@jgstew
Copy link

jgstew commented May 28, 2024

This document also only mentions hyperkit and doesn't mention using qemu on apple silicon: https://github.com/kubernetes/minikube/blob/master/site/content/en/docs/tutorials/docker_desktop_replacement.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
co/hyperkit Hyperkit related issues kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence.
Projects
None yet
Development

No branches or pull requests