-
Notifications
You must be signed in to change notification settings - Fork 40k
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
[Proposal] Make Kubernetes run on ARM devices #17981
Comments
I've digged into this a little bit more, and here are the results:
So here are some questions for you to answer
At least I would like to discuss these things |
@brendandburns I know you were working on some Pi stuff; want to chime in here? |
Yes #17629
There are lots of folks who want this, and since 1st Oct, my project may help with this. @ihmccreery At least, should I start writing on the ARM docs? |
Assigning to @brendandburns to advise. |
@luxas I have a working Raspberry PI cluster and have built a bunch of ARM binaries for various pieces. I'm happy to advise and review the PRs.. We can keep this open as a tracking issue. Please assign the PRs to me. |
@brendandburns Are you OK with using |
@brendandburns Great news! I've been able to compile all kubernetes binaries on my The code is here and it uses
I also think it would be possible to build ARM docker images on WDYT? |
Automatic merge from submit-queue Make kube2sky and skydns docker images cross-platform ARM tracking issue: #17981 Continues on: #19216 Make it possible to create `kube2sky` and `skydns` docker images for ARM and other architectures too Build in a container, so `golang` isn't a dependency I've preserved the original default behaviour: - `skydns`: It just compiles with go on host - `kube2sky`: Build an image @brendandburns @dchen1107 @ArtfulCoder @thockin @fgrzadkowski
@luxas Thanks so much for the work you and the others have put into this. I was smacking my head against the wall trying to get Kubernetes running on a rpi 3 last night using the guide... Then I saw your comment this morning so I changed the k8 version number to the latest alpha and everything just works :) Thank you thank you thank you :) |
Automatic merge from submit-queue Automatically add node labels beta.kubernetes.io/{os,arch} Proposal: #17981 As discussed in #22623: > @davidopp: #9044 says cloud provider but can also cover platform stuff. Adds a label `beta.kubernetes.io/platform` to `kubelet` that informs about the os/arch it's running on. Makes it easy to specify `nodeSelectors` for different arches in multi-arch clusters. ```console $ kubectl get no --show-labels NAME STATUS AGE LABELS 127.0.0.1 Ready 1m beta.kubernetes.io/platform=linux-amd64,kubernetes.io/hostname=127.0.0.1 $ kubectl describe no Name: 127.0.0.1 Labels: beta.kubernetes.io/platform=linux-amd64,kubernetes.io/hostname=127.0.0.1 CreationTimestamp: Thu, 31 Mar 2016 20:39:15 +0300 ``` @davidopp @vishh @fgrzadkowski @thockin @wojtek-t @ixdy @bgrant0607 @dchen1107 @preillyme
Automatic merge from submit-queue Use pause image depending on the server's platform when testing Removed all pause image constant strings, now the pause image is chosen by arch. Part of the effort of making e2e arch-agnostic. The pause image name and version is also now only in two places, and it's documented to bump both Also removed "amd64" constants in the code. Such constants should be replaced by `runtime.GOARCH` or by looking up the server platform Fixes: #22876 and #15140 Makes it easier for: #25730 Related: #17981 This is for `v1.3` @ixdy @thockin @vishh @kubernetes/sig-testing @andyzheng0831 @Pensu
@david-mcmahon How is the release note writing process for v1.3 managed? |
Release notes are handled in a few chunks. There are the auto-generated notes from github labels that are bundled up since the last release. And there are hand-curated release notes, which this falls under. Please write up what you'd like to see and send it to @david-mcmahon |
@david-mcmahon Did you get my email message I sent some days ago? |
@luxas Yes and I replied. |
Yes, thanks! |
/cc |
For everyone interested, arm binaries has been released for kubernetes since v1.2. For v1.2.x, use my project kubernetes-on-arm v0.7.0 You may also read https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/multi-platform.md I consider this work done since a while ago thanks to the linked PRs above. |
Edited to reflect current status
Since Kubernetes is written in Go, it's possible to add support for ARM devices like Raspberry Pi.
I have done this, it's published here: https://github.com/luxas/kubernetes-on-arm
And it would be great to merge this to mainline k8s.
This work focuses on making it easier for other architectures too, like
arm64
andppc64le
TODO:
go1.5
go1.6
: Upgrade to golang 1.6 #22149gcr.io/google_containers/binary-arch:version
names for images. Discussions: Push server docker images during the release (attempt 2) #19061, Make kubelet use an arch-specific pause image depending on GOARCH #23059, Reimplement 'pause' in C - smaller footprint all around #23009etcd
cross-platform: Make the etcd image cross-platform #19216gcr.io
flannel image that usesquay.io/coreos/flannel:version
foramd64
and cross-compile for other architectures. Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image #21617hyperkube
) when releasing. Push server docker images during the release (attempt 2) #19061hyperkube
Makefile to support ARM. Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image #21617skydns
,kube2sky
andexechealthz
cross-platform. Make kube2sky and skydns docker images cross-platform #19376, Add cross-compiling support for exechealthz kubernetes-retired/contrib#646docker-multinode
instructions: Update docker-multinode instructions and version #18894docker
guide to support other architectures also. Document experimental support for other architectures website#407dashboard
for ARM (gcr.io/google_containers/kubernetes-dashboard-arm
)pause
totally cross-platform (and written in C). Make kubelet use an arch-specific pause image depending on GOARCH #23059, Reimplement 'pause' in C - smaller footprint all around #23009Status of multiarch images:
Get docker-multinode working:
gcr.io/google_containers/debian-iptables
, fixed for all Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image #21617Get DNS working:
Docker wrapped Kubernetes binaries:
I worked with the dashboard team, and it has had multiarch support from the first release.
I'm maybe gonna add multiarch support for official heapster too, now when it has reached v1.
On kubernetes-on-arm, I already have heapster, influxdb and grafana nicely running as a cluster addon.
I thought about making a proposal earlier, and now when #17629 was merged, it might be time
/cc
@dalanlan (
k8s-in-docker
interest)@resouer (
k8s-in-docker
interest)@guybrush (
k8s-in-docker
interest)@davidopp (who was involved in #17629)
@roberthbailey (who was involved in #17629)
@zmerlynn (who was mentioned in #17629)
@DieterReuter (interested in Raspberry Pi things)
The text was updated successfully, but these errors were encountered: