-
Notifications
You must be signed in to change notification settings - Fork 43.2k
[Proposal] Make Kubernetes run on ARM devices #17981
Copy link
Copy link
Closed
Labels
area/build-releasearea/images-registryarea/release-engIssues or PRs related to the Release Engineering subprojectIssues or PRs related to the Release Engineering subprojectarea/test-infrakind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.priority/backlogHigher priority than priority/awaiting-more-evidence.Higher priority than priority/awaiting-more-evidence.
Metadata
Metadata
Assignees
Labels
area/build-releasearea/images-registryarea/release-engIssues or PRs related to the Release Engineering subprojectIssues or PRs related to the Release Engineering subprojectarea/test-infrakind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.priority/backlogHigher priority than priority/awaiting-more-evidence.Higher priority than priority/awaiting-more-evidence.
Type
Fields
Give feedbackNo fields configured for issues without a type.
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
arm64andppc64leTODO:
go1.5go1.6: Upgrade to golang 1.6 #22149gcr.io/google_containers/binary-arch:versionnames 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 #23009etcdcross-platform: Make the etcd image cross-platform #19216gcr.ioflannel image that usesquay.io/coreos/flannel:versionforamd64and 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) #19061hyperkubeMakefile to support ARM. Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image #21617skydns,kube2skyandexechealthzcross-platform. Make kube2sky and skydns docker images cross-platform #19376, Add cross-compiling support for exechealthz kubernetes-retired/contrib#646docker-multinodeinstructions: Update docker-multinode instructions and version #18894dockerguide to support other architectures also. Document experimental support for other architectures website#407dashboardfor ARM (gcr.io/google_containers/kubernetes-dashboard-arm)pausetotally 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-dockerinterest)@resouer (
k8s-in-dockerinterest)@guybrush (
k8s-in-dockerinterest)@davidopp (who was involved in #17629)
@roberthbailey (who was involved in #17629)
@zmerlynn (who was mentioned in #17629)
@DieterReuter (interested in Raspberry Pi things)