Releases: luxas/kubernetes-on-arm
v0.8.0
Major refactoring release with Kubernetes v1.3.6
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:
- HypriotOS v1.0.1
- Raspberry Pi 1, 2, 3
- Note: no reboot required! (DNS resolving on host won't work without a reboot though)
- Raspbian Jessie
- Raspberry Pi 1, 2, 3
- Arch Linux ARM
- The boards Arch Linux ARM supports should work, but haven't been tested
- But here the docker pull bug is really messing things up. I haven't found a solution to that problem, see the bug referenced below.
- Debian Jessie
- Pine64
- Here again, the docker pull bug is really messing things up. I haven't found a solution to that problem, see the bug referenced below.
- Debian Jessie/Ubuntu Trusty on Scaleway
- Works when the docker pull bug is fixed.
Changes
- Upgraded to Kubernetes v1.3.6 and flannel v0.6.1
- Using official Kubernetes binaries and docker images
- They are built in line with my multi-platform proposal: kubernetes/kubernetes#26863
- Most of the code is "official" from kube-deploy/docker-multinode
- All binaries and images are now cross-compiled from
amd64, no more releasing from Raspberry Pis! - Using HypriotOS v1.0.1!
- It's fully possible to add
amd64nodes seamlessly with docker-multinode- Then you can control which nodes a pod should land on with the
beta.kubernetes.io/archlabel: kubernetes/kubernetes#23684
- Then you can control which nodes a pod should land on with the
- Made the dns and the dashboard addons mandatory, they can't and shouldn't be disabled as they're required components of the core.
- The earlier
skydnscomponent has been replaced with the newkubednscomponent that is more integrated with Kubernetes and more efficent. - Raspbian is supported out-of-the-box, just download the deb package and install on your Pi!
- Pine64 is now supported as a platform.
- Upgraded the addons:
- dashboard to v1.1.1
- kubedns to 1.5 (manifest version v17.1)
- registry to v2.5.0
- heapster to v1.2.0-beta.2
- influxdb to v0.13.0
- grafana to v3.1.1
- Total refactor of
kube-configand 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. - Added the helm package manager at version v2.0.0-alpha.3
- kube-registry-proxy is now added to the registry addon which makes every node expose the registry at
localhost:5000 - Possible to use
--containerizedby addingexport USE_CONTAINERIZED=trueto/etc/kubernetes/k8s.conf - Renamed
kube-systemdtodocker-multinodeand the genericsystemdOS to the genericdebianOS - Caveats:
- Reboots aren't working nor supported. (Added to roadmap)
- Arch Linux ARM, the Pine64 and Scaleway suffers from the
docker pullmtu bug docker/docker#22635
Downloads
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
Roadmap for the future
I'm gonna continue to work hard on making this project unnecessary!
v0.7.0
Major release with Kubernetes v1.2.0
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.
Changes
- Upgrade to Kubernetes v1.2.0 (Changelog), dashboard v1.0.0, etcd v2.2.5, registry v2.3.1
- Using official binaries built from my Kubernetes PR: kubernetes/kubernetes#19769
- Added cluster monitoring! Heapster v1.0.0, influxdb v0.10.3 and grafana v2.6.0
- Changed to "native" kubelet mode. No more
--containerizedhack. Makes it possible to use Downward API - Switched to
host-gwinstead ofudpas the defaultflannelbackend for improved performance as @larmog suggested. Also made the optionFLANNEL_BACKENDink8s.conf - Compile
flannelandregistrystatically. That reduces their total image size 147 MB - Deprecated and removed
luxas/raspbianin favor for plainresin/rpi-raspbian:jessie - Added
master.jsonto the hyperkube image so it's easy to spin up a one-node cluster asdocker.mdin official docs does. - Using @hypriot's prebuilt Go tarballs for
luxas/go. Will switch to officialgo1.6soon. - Added experimental RancherOS to
sdcard/write.sh, but no Kubernetes rootfs is available yet - Added
sdcard/writesupport for Raspberry Pi 3, but yet only witharmhfOSes. - Made the storage driver easily changeable with the
DOCKER_STORAGE_DRIVERin/etc/kubernetes/k8s.conf - Changed indentation to spaces instead of tabs for the most of the files. Also trying to end all files with a newline.
- Replaced
sleepbased timeouts in kube-config for condition based loops, makes it faster and more reliable - Added a debugging option in
kube-configby specifyingK8S_DEBUG=1before the command. - Fixed a HypriotOS/
.deb-file issue wheresudomodified the$PATHsokube-configcouldn't findkubectl@DorianGray - More reliable SD Card creation by using
partprobe@DorianGray - Lowered the
nodeMonitorGracePeriodand thepodEvictionTimeoutas @saturnism suggested - Changed proxying mode to
iptablesfor better performance. - Added a script for cross-compiling Kubernetes to ARM 64-bit on a
amd64host. - Other minor enhancements, improvements and bug fixes are included too.
Downloads
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
v0.6.5
Stability and upgrade release
Upgrades to docker v1.10.0, and adds the loadbalancer and dashboard addons
Changes
- Add a http loadbalancer. Thanks for the help @larmog
- Upgrade to and support docker-1.10.0 only
- Kubernetes Dashboard UI added as an addon
- Do not depend on pacman, use a self-built statically linked ARMv6 docker-1.10 binary instead
- Revert to userspace proxying, since iptables proxying had some bugs in it
- Better documentation
- A worker may now reboot and come up again in some minutes
- Better UX when writing the hypriot image, caches the downloaded image for faster writes and installs unzip if not present
- Bug fixes
- Rearranged the addon manifests
Downloads
v0.6.5
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 ofv0.6.5kube-systemd==kube-systemd-2: Second revision with Dashboard working OOTB
v0.6.2
The 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)
v0.6.3
Stability and refactoring release
Better documentation, more stable .deb deployment, bugs fixed and it's now possible to edit DNS names
Changes
- Fix bugs and make the
.debfile stable - Add an experimental
.tar.gzdeployment for platforms that doesn't havedpkg - Document the /etc/kubernetes/README.md better
- Refactor, fix bugs and remove unnecessary things
- Break out the DNS options
cluster.localand10.0.0.10to/etc/kubernetes/k8s.conf - Fixed so the master is able to collect logs from nodes @kyletravis
- Better DNS management on Arch Linux
- Use a shell for looking up paths to executables needed in
.servicefiles - Easier to use on
systemd, most of the packages is automatically installed
Downloads
v0.6.3
Install 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.
v0.6.2
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.
v0.6.2
Major release with many new possibilities
Now HypriotOS is supported and you may run it anywhere (on a systemd based host) thanks to the .deb package.
Changes
- Support for Banana Pro
.debpackage deploymentiptablesproxying mode forkube-proxyshould result in better performancedockeris built statically for bothARMv6andARMv7. Optional to use in most cases.- Support for HypriotOS
- Support for plain
systemdOSes - Enabled experimental Kubernetes by default, e.g.
Jobs,DaemonSets - k8s => 1.1.3, etcd => 2.2.2, flannel => 0.5.5, registry => 2.2.1
- Started to hack on mainline k8s: kubernetes/kubernetes#17981
- Renamed
kube-archlinuxto the more generickube-systemd - Small improvments and much better README
- Bug fixes
- Broke out the flannel subnet to the configuration file:
/etc/kubernetes/k8s.confsupports nowFLANNEL_SUBNETwhich defaults to10.1.0.0/16
Downloads
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 generalsystemdOSkube-systemd==kube-systemd-3: Third revision with noREADME.mdconflict on HypriotOS andkube-config enable-masterworking
v0.6.0
Major release with many new features
This release brings many new features and bugfixes
Changes
- A new, more customizable way to write the SD Card, allows for more OSes in the future
- Automates post-installation for cubietruck.
- Upgrade k8s => 1.1.2, flannel => v0.5.4, etcd => 2.2.1, registry => 2.2.0, go => 1.4.3
- Now it's possible to build the Kubernetes binaries with Go 1.5.1, but it's much slower so it's not default
- Add some test scripts for even more automation
- Fix the bug that makes this not run on armv6, e.g. Raspberry Pi 1
- Add windows downloads
- Now
ServiceAccountsecretsare working as they should- Make dns use ServiceAccount tokens
kube-proxyruns in a container underkubeleton master- Now it's possible to reboot and k8s restarts automatically
- Many small bugfixes and improvments
Downloads
Windows downloads:
sdcard-rpi.zip:v0.6.0SD Card image for Raspberry Pi 1. Command used:sdcard/write.sh rpi archlinux kube-archlinuxsdcard-rpi-2.zip:v0.6.0SD 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
v0.5.8
Mostly enhancements and some new features
Stability release, enhancements has highest priority in this release
Changes
- Enhanced the SD Card write process
- Now cubietruck is supported
- Kubernetes binaries are now downloaded from Github, this makes it also possible to use k8s out-of-docker
- Bugfixes, especially when running
kube-config enable-* - Now the installer also may download images from Github
- Added lots of new info to
kube-config info - Added
kube-config upgradefor upgrading the system - Added the
sleepaddon. README
v0.5.6
Prerelease with bugfixes and some new experimental features
Mostly bugfixes are in this prerelease.
Just so may fetch the latest code.
Changes
- Added experimental support for Kube UI and Cubietruck
- Now memory accounting is enabled on RPi. No docker warnings are shown anymore.
- Updated README.md and added READMEs to the core Kubernetes images. More to come.
- Fixed the most of @nsteinmetz's bug reports. Thanks.
- Some bugfixes here and there
- Note: this is a prerelease, just for one to have newer code to hack on.
v0.5.5
Changes:
- Added two addons: DNS and central image registry
- Fixed bugs
- Added support for Parallella (although it´s slow)
- Extended the README
- Published the Kubernetes images on Docker Hub
- Rewrite of the SD Card write process
Images on Docker Hub
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