-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Build KIC base image for ARM #9227
Comments
This is needed for docker driver support on raspberry pi 4 and on apple silicon macs, as well as being good for portability. More and more cloud providers offer arm-based servers now: https://www.arm.com/blogs/blueprint/optimizing-data-center |
Once the custom packages are out of the way and the images are streamlined, this won't be too hard to do (except buildx) There is one image for "arm32v7", like the Raspberry Pi OS (32-bit) a.k.a. And one image for "arm64v8", like the Raspberry Pi 4 hardware (64-bit) |
I was able to get it starting on the Raspberry Pi, which is ARM hardware. Found some other weird bugs in the process... https://github.com/afbjorklund/minikube/tree/kicbase-armv7 https://github.com/afbjorklund/minikube/tree/kicbase-arm64
First have to "allow" running on non-amd64, and then work around issues #9248 and #9252 if runtime.GOARCH != "amd64" {
return registry.State{Error: fmt.Errorf("docker driver is not supported on %q systems yet", runtime.GOARCH), Installed: false, Healthy: false, Fix: "Try other drivers", Doc: docURL}
}
|
Also the emoji are missing from the default terminal (LXTerminal). Installing "fonts-noto-color-emoji" didn't fix it. The emoji do work in e.g. a text editor, but I think the terminal emulator from the LXDE desktop doesn't provide. |
AWS provides arm64 instances. ubuntu@ip-172-31-39-30:~/src/minikube$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
ubuntu@ip-172-31-39-30:~/src/minikube$
ubuntu@ip-172-31-39-30:~/src/minikube$ uname -a
Linux ip-172-31-39-30 5.4.0-1024-aws #24-Ubuntu SMP Sat Sep 5 06:17:48 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
ubuntu@ip-172-31-39-30:~/src/minikube$ ubuntu@ip-172-31-39-30:~/src/minikube$ make kic-base-image
[skip]
Get:20 http://ports.ubuntu.com/ubuntu-ports focal-security/restricted arm64 Packages [1139 B]
Get:21 http://ports.ubuntu.com/ubuntu-ports focal-security/main arm64 Packages [310 kB]
Fetched 15.4 MB in 2s (6375 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package podman
The command '/bin/sh -c sh -c "echo 'deb https://dl.bintray.com/afbjorklund/podman focal main' > /etc/apt/sources.list.d/podman.list" && curl -L https://bintray.com/user/downloadSubjectPublicKey?username=afbjorklund -o afbjorklund-public.key.asc && apt-key add - < afbjorklund-public.key.asc && clean-install podman=1.9.3~1' returned a non-zero code: 100
make: *** [Makefile:587: kic-base-image] Error 100 looks like we miss arm64 podman package |
Yeah, I deleted that pinning an just installed podman2 instead. We need to get that working sometime anyway. But it’s not a major issue to build podman1 (and cri-o if needed) for ubuntu 20.04 arm64. I used pbuilder to do it. See #8063 (comment) for how it was built |
@ilya-zuyev published a podman_1.9.3~1_arm64.deb |
Will do some rebasing of the current images/Dockerfile from the latest one... We dropped the kindbase (and forked it), so that is not needed anymore. We can do some tagging hack, to just use the regular name of the base:
And then make sure that it is actually pulling the right architecture image:
https://hub.docker.com/_/ubuntu?tab=tags&page=1&name=focal This is so that we can cross-build everything from a regular amd64 machine. You will need buildx / buildkit and a local registry in order to do that, though... |
Most things seem to working, after patching some built-in "exit" calls and so on.
KIND is also working on this (support for ARM): kubernetes-sigs/kind#166 |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-contributor-experience at kubernetes/community. |
This was released earlier this month. |
Once we have cleaned up the kicbase image and started to use regular packages, we can build for other architectures too.
So we can have both
amd64
andarm64
variants.Currently it is quite the mess to do it, since the docker daemon doesn't support architectures (only buildx and registry does)
But it is doable, Ubuntu 20.04 LTS supports both arch.
The text was updated successfully, but these errors were encountered: