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

Investigate running x86 kubernetes on M1 #11725

Closed
ilya-zuyev opened this issue Jun 22, 2021 · 8 comments
Closed

Investigate running x86 kubernetes on M1 #11725

ilya-zuyev opened this issue Jun 22, 2021 · 8 comments
Labels
arch/arm64 kind/feature Categorizes issue or PR as related to a new feature. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. os/macos priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.

Comments

@ilya-zuyev
Copy link
Contributor

Docker Desktop for M1 now supports running x86 containers

lyaz@host --- /tmp » docker version
Client:
 Cloud integration: 1.0.14
 Version:           20.10.6
 API version:       1.41
 Go version:        go1.16.3
 Git commit:        370c289
 Built:             Fri Apr  9 22:46:57 2021
 OS/Arch:           darwin/arm64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.6
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       8728dd2
  Built:            Fri Apr  9 22:44:13 2021
  OS/Arch:          linux/arm64
  Experimental:     true
 containerd:
  Version:          1.4.4
  GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc:
  Version:          1.0.0-rc93
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
ilyaz@host --- /tmp » arch
arm64
ilyaz@host --- /tmp » docker run -it --platform linux/amd64 ubuntu
root@29557202deef:/# arch
x86_64
root@29557202deef:/# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  1.6  0.1 222560 13832 pts/0    Ssl  04:35   0:00 /usr/bin/qemu-x86_64 /usr/bin/bash
root        18  0.0  0.1 223956  8916 ?        Rl+  Jun21   0:00 /usr/bin/ps aux
root@29557202deef:/#

We need to investigate if it's possible to run x86_64 kicbase there.
If yes, we could give a lot of flexibility to our users, including building mixed arm/x86 minikube clusters

It's qemu and probably is pretty slow, but worths a shot

@ilya-zuyev ilya-zuyev added arch/arm64 os/macos kind/design Categorizes issue or PR as related to design. labels Jun 22, 2021
@spowelljr spowelljr added the priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. label Jul 2, 2021
@afbjorklund
Copy link
Collaborator

On a side note, we have been using this to run aarch64 processes on amd64 for a while now...

https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux/

It is also possible to run the whole OS (system), but then you lose the KVM/HVF acceleration.

https://qemu-project.gitlab.io/qemu/about/ (for "system" vs "user mode")

Sometimes it has to be done, like when it is not possible to cross-compile for instance.
The Go compiler, and some other software, still have issues when running under QEMU.

We would require multi-node for deploying VM workers of different architecture, though.
But it should be possible to join an emulated worker node to a native control plane node...

@MadhavJivrajani
Copy link
Contributor

/remove-kind design
/kind feature
kind/design is migrated to kind/feature, see kubernetes/community#6144 for more details

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. and removed kind/design Categorizes issue or PR as related to design. labels Oct 11, 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 Jan 9, 2022
@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 Feb 8, 2022
@MPLew-is
Copy link
Contributor

MPLew-is commented Feb 9, 2022

Is there any particular reason this was closed? This would be a huge feature to have, to run x86 images on an M1 cluster.

@yuvipanda
Copy link
Contributor

Would love to have this be opened again!

@MPLew-is
Copy link
Contributor

For what it's worth for anyone else in the same position, I've migrated to colima for this purpose and have been quite pleased. Emulation works flawlessly, supports Docker contexts (rather than having to use minikube docker-env), and the filesystem mounting is much more stable than Minikube's.

@66Ton99
Copy link

66Ton99 commented Jan 30, 2025

It should be natively supported by vfkit driver

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch/arm64 kind/feature Categorizes issue or PR as related to a new feature. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. os/macos priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
None yet
Development

No branches or pull requests

10 participants