-
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
minikube on raspberry pi (ARM desktop) #9762
Comments
ubuntu@ubuntu:~$ ./minikube-linux-arm64 version ubuntu@ubuntu:~$ minikube start 🤷 Exiting due to PROVIDER_DOCKER_NOT_FOUND: The 'docker' provider was not found: docker driver is not supported on "arm64" systems yet Any suggestion for the way forward is highly appreciated!!! Thank you! Update: Using currently the none driver instead of docker which seems to be operating. |
Docker driver was still not allowed/"supported" in v1.16.0 It needs 66a671f (to remove previous 24971a5)
That would be the way to go, until then. You would have to install docker yourself, and don't get any "node" isolation. https://minikube.sigs.k8s.io/docs/drivers/none/ This means that it not recommended to run on your desktop, and thus not enough to solve this particular issue... But supported on a dedicated node, since #6843 |
Thank you this is completely understood. I wonder if there is a possibility to go with the kvm driver. I would definitely like to stick with minikube on raspberry pi 4 and avoid other solutions. |
It's outlined at the start there, the main missing piece is the ISO (for arm64) and some minor details like a KVM driver (for arm64) |
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. |
/remove-lifecycle stale |
I'd love to see some better support for this - installer packages are available for minikube but the docker images for starting it up on armv7 aren't available, while the arm64 install works, but the tutorials don't. :( |
I think the docker images for Back when I wrote this it was easier to build the image yourself, so that should still be possible. It mostly installs packages and scripts on top of |
@afbjorklund Could you share the steps to do so? that would be great for people (like me) who run into this issue before it is resolved (by actually officially supporting de KIC base image). |
I think it is mostly the integrated push that is the problem, using BuildKit and buildx should be possible for most. KICBASE_ARCH = linux/amd64,linux/arm64,linux/arm
But if you are on an arm server, you can use the "local-kicbase" target instead of cross-building with qemu: $ make local-kicbase
|
@afbjorklund should the merge above solve the problem for minikube on raspberry pi when using docker? And do you happen to have an ETA for when end-users have access to the fix? Thanks for the effort! |
Good question! But it hasn't kicked in for the temporary builds, so maybe it will only affect the upcoming release ? $ docker manifest inspect gcr.io/k8s-minikube/kicbase-builds:v0.0.25-1628619379-12032@sha256:937faef407987cbd8b3cb0a90c6c5dfd664817d5377be0b77a4ecbf0f9f9c1b6
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 7820,
"digest": "sha256:50043aeed4b48d15fc257efa371e0eda231333f4878d9a4ea9e55676bd5c7d22",
"platform": {
"architecture": "arm64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 7821,
"digest": "sha256:f75e30b3ec3579436be6869fade4119fe62277cf991fc6f4414c5b04f76820f1",
"platform": {
"architecture": "amd64",
"os": "linux"
}
}
]
} You should be able to build your own image meanwhile, though. And use that, for the make build-kic-base-image KICBASE_ARCH=linux/arm |
So I tried the following steps:
This results in the following error:
@afbjorklund Any clue for noobs like me on how to fix this? |
Sorry for assuming it would "just work", when building locally on the RPi and not on the laptop all that complexity is not needed.
I think the go requirement comes from "auto-pause", in the future this might be distributed like a proper binary package instead... FROM golang:1.16
WORKDIR /src
# becaue auto-pause binary depends on minikube's code we need to pass the whole source code as the context
ADD . .
RUN cd ./cmd/auto-pause/ && go build |
So based on your comment above I tried the following:
Which returns this:
I believe I've done anything weird with my dockers or raspberry pi's networking (which seems to be the source of the issue). Any clue on how to solve this? I'd like to get this checklist to a point where not only I can use it but also people who are truly inexperienced with Linux / K8s. Since I believe raspberry pi's are often the tool to learn these things. |
I will give it a try later, hopefully it will be easier once the new release is out with the new image... If you are eager to get started, I would recommend Ubuntu 20.04 for arm64 on a spare SD card... EDIT: some say that a reboot fixed similar issues, on their Raspberry Pi after upgrading things |
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:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
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:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
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:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove |
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:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
/remove-lifecycle rotten |
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:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
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:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close not-planned |
@k8s-triage-robot: Closing this issue, marking it as "Not Planned". In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/reopen |
@sebdanielsson: You can't reopen an issue/PR unless you authored it or you are a collaborator. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
This is a follow-up to to the previous issues about supporting arm architectures in general, and raspberry pi in particular.
Since before, we have support for running the "none" driver but soon there is also support for running the "docker" driver.
Normally the Raspberry Pi is used to build clusters. And then you connect to this from a separate machine, like a laptop.
But with the Raspberry Pi 4 (and 400), it is now possible to run both the desktop and the cluster on the same machine...
https://www.raspberrypi.org/products/raspberry-pi-4-desktop-kit/
https://www.raspberrypi.org/products/raspberry-pi-400/ ($100 US)
Distros
arm
32-bit OShttps://www.raspberrypi.org/software/operating-systems/
arm64
64-bit OShttps://ubuntu.com/download/raspberry-pi/
Drivers
Support running minikube on Raspbian (arm) #6843,Add support for running on arm64 (aarch64) #5667, Request: add arm64 machine to CI (jenkins) #6280)4 GB of memory is recommended. If your Raspberry Pi 4 has 2 GB, you need to add 2 GB of swap (
dphys-swapfile
)It is not recommended to run minikube directly on the Raspberry Pi version 2-3, due to them having 1 GB of memory.
(you can still use these old machines remotely, for instance by using the "generic" driver, but that is a separate story...)
If running a virtual desktop in the cloud, the recommendation is also to use a separate VM instead of nested virtualization.
i.e. get two of them
Remaining issues:
We also need some better documentation, for non-amd64 architectures #6159
It should show how to pick "minikube-linux-arm" or "minikube-linux-arm64"
In order to run containers, support for memory cgroups needs to be added to kernel cmdline and then it needs a reboot.
When running with Raspbian or Xfce, you also need to install "gnome-terminal" and "fonts-noto-color-emoji" packages
Otherwise the emoji will get replaced by "missing" symbols. Alternatively, you can use
MINIKUBE_IN_STYLE=false
There are other distros (Fedora) and other drivers (Podman), but not "supported"
Eventually KVM will be available as well, but it depends on the ISO image #9228
Example output:
The text was updated successfully, but these errors were encountered: