Kubernetes ported to ARM boards like Raspberry Pi.
This release is a complete reboot compared to earlier releases. Now, docker-multinode is used as the base, along with the official flannel, hyperkube, dashboard and kube-dns docker images. I've added arm, arm64 and ppc64le variants for the most important Kubernetes images, so now Kubernetes releases all binaries and images automatically in their release process.
Everything is written in line with my multi-platform proposal: https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/multi-platform.md
It's also possible to setup Kubernetes on ARM on Pine64 easily with the deb package!
Supported boards/OSes:
amd64
, no more releasing from Raspberry Pis!amd64
nodes seamlessly with docker-multinode
beta.kubernetes.io/arch
label: kubernetes/kubernetes#23684
skydns
component has been replaced with the new kubedns
component that is more integrated with Kubernetes and more efficent.kube-config
and of the whole project; as much as possible official Kubernetes code is used, which means the configuration for v0.8.0 is more generic than v0.7.0 which was more specialized.localhost:5000
--containerized
by adding export USE_CONTAINERIZED=true
to /etc/kubernetes/k8s.conf
kube-systemd
to docker-multinode
and the generic systemd
OS to the generic debian
OSdocker pull
mtu bug docker/docker#22635
Kubernetes binaries:
# Generic
wget https://storage.googleapis.com/kubernetes-release/release/${VERSION}/bin/linux/${GOARCH}/${BINARY}
# Examples
wget https://storage.googleapis.com/kubernetes-release/release/v1.3.6/bin/linux/arm/kubectl
wget https://storage.googleapis.com/kubernetes-release/release/v1.3.6/bin/linux/arm/hyperkube
wget https://storage.googleapis.com/kubernetes-release/release/v1.3.6/bin/linux/arm/kubelet
wget https://storage.googleapis.com/kubernetes-release/release/v1.3.6/bin/linux/arm64/hyperkube
Install the latest .deb
package:
wget https://github.com/luxas/kubernetes-on-arm/releases/download/v0.8.0/docker-multinode.deb
dpkg -i docker-multinode.deb
I'm gonna continue to work hard on making this project unnecessary!
A lot of new features are in the largest release of Kubernetes on ARM yet made. Highlights include officially built Kubernetes v1.2.0 ARM binaries, much better performance and cluster insight via the heapster
addon.
--containerized
hack. Makes it possible to use Downward APIhost-gw
instead of udp
as the default flannel
backend for improved performance as @larmog suggested. Also made the option FLANNEL_BACKEND
in k8s.conf
flannel
and registry
statically. That reduces their total image size 147 MBluxas/raspbian
in favor for plain resin/rpi-raspbian:jessie
master.json
to the hyperkube image so it's easy to spin up a one-node cluster as docker.md
in official docs does.luxas/go
. Will switch to official go1.6
soon.sdcard/write.sh
, but no Kubernetes rootfs is available yetsdcard/write
support for Raspberry Pi 3, but yet only with armhf
OSes.DOCKER_STORAGE_DRIVER
in /etc/kubernetes/k8s.conf
sleep
based timeouts in kube-config for condition based loops, makes it faster and more reliablekube-config
by specifying K8S_DEBUG=1
before the command..deb
-file issue where sudo
modified the $PATH
so kube-config
couldn't find kubectl
@DorianGray
partprobe
@DorianGray
nodeMonitorGracePeriod
and the podEvictionTimeout
as @saturnism suggestediptables
for better performance.amd64
host.Get the binaries:
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.7.0/binaries.tar.gz | tar -xz -C /usr/bin
Load the images:
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.7.0/images.tar.gz | gzip -dc | docker load
The images are also available on Docker Hub.
Install the latest .deb
package:
wget https://github.com/luxas/kubernetes-on-arm/releases/download/v0.7.0/kube-systemd.deb
dpkg -i kube-systemd.deb
Upgrades to docker v1.10.0
, and adds the loadbalancer
and dashboard
addons
Install the latest .deb
package:
wget https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.5/kube-systemd.deb
dpkg -i kube-systemd.deb
Revisions of the .deb
package:
kube-systemd-1
: The first revision of v0.6.5
kube-systemd
== kube-systemd-2
: Second revision with Dashboard working OOTBThe binaries and docker images haven't changed between v0.6.2
and v0.6.5
.
Get the binaries:
mkdir k8s_binaries
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.2/binaries.tar.gz | tar -xz -C k8s_binaries
ls -lh k8s_binaries
(Small exception: the service_loadbalancer
binary is old there. The newest binary is in the kubernetesonarm/loadbalancer
image)
Load the images:
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.2/images.tar.gz | gzip -dc | docker load
docker pull kubernetesonarm/loadbalancer
All images are also available on Docker Hub.
(The grafana-server
binary is just temporary hosted for the coming v0.7.0
release)
Better documentation, more stable .deb
deployment, bugs fixed and it's now possible to edit DNS names
.deb
file stable.tar.gz
deployment for platforms that doesn't have dpkg
cluster.local
and 10.0.0.10
to /etc/kubernetes/k8s.conf
.service
filessystemd
, most of the packages is automatically installedInstall the latest .deb
package:
wget https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.3/kube-systemd.deb
dpkg -i kube-systemd.deb
The .tar.gz
package is experimental.
The binaries and docker images haven't changed between v0.6.2
and v0.6.3
.
Get the binaries:
mkdir k8s_binaries
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.2/binaries.tar.gz | tar -xz -C k8s_binaries
ls -lh k8s_binaries
Load the images:
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.2/images.tar.gz | gzip -dc | docker load
The images are also available on Docker Hub.
Now HypriotOS
is supported and you may run it anywhere (on a systemd
based host) thanks to the .deb
package.
.deb
package deploymentiptables
proxying mode for kube-proxy
should result in better performancedocker
is built statically for both ARMv6
and ARMv7
. Optional to use in most cases.systemd
OSesJobs
, DaemonSets
kube-archlinux
to the more generic kube-systemd
/etc/kubernetes/k8s.conf
supports now FLANNEL_SUBNET
which defaults to 10.1.0.0/16
Get the binaries:
mkdir k8s_binaries
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.2/binaries.tar.gz | tar -xz -C k8s_binaries
ls -lh k8s_binaries
Load the images:
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.2/images.tar.gz | gzip -dc | docker load
The images are also available on Docker Hub.
Install the latest .deb
package:
wget https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.2/kube-systemd.deb
dpkg -i kube-systemd.deb
Revisions of the .deb
package:
kube-systemd-1
: The first revisionkube-systemd-2
: The second revision with a bug fix for the general systemd
OSkube-systemd
== kube-systemd-3
: Third revision with no README.md
conflict on HypriotOS and kube-config enable-master
workingThis release brings many new features and bugfixes
ServiceAccount
secrets
are working as they should
kube-proxy
runs in a container under kubelet
on masterWindows downloads:
sdcard-rpi.zip
: v0.6.0
SD Card image for Raspberry Pi 1. Command used: sdcard/write.sh rpi archlinux kube-archlinux
sdcard-rpi-2.zip
: v0.6.0
SD Card image for Raspberry Pi 2. Command used: sdcard/write.sh rpi-2 archlinux kube-archlinux
Get the binaries:
mkdir k8s_binaries
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.0/binaries.tar.gz | tar -xz -C k8s_binaries
ls -lh k8s_binaries
Load the images:
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.6.0/images.tar.gz | gzip -dc | docker load
The images are also available on Docker Hub.
The Banana Pro uboot file is also here, although Banana Pro isn't out-of-the-box supported. It will be in next release.
An experimental statically compiled docker daemon
is uploaded here. It is compiled for both ARMv6
and ARMv7
unlike other daemons. Version 1.8.2
Stability release, enhancements has highest priority in this release
kube-config enable-*
kube-config info
kube-config upgrade
for upgrading the systemsleep
addon. README
Mostly bugfixes are in this prerelease. Just so may fetch the latest code.
Download and use the images:
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.5.5/images.tar.gz | tar -xz
docker load -i images.tar
Get the binaries:
mkdir k8s_binaries
curl -sSL https://github.com/luxas/kubernetes-on-arm/releases/download/v0.5.5/binaries.tar.gz | tar -xz -C k8s_binaries
ls -lh k8s_binaries