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
amd64
nodes seamlessly with docker-multinode- Then you can control which nodes a pod should land on with the
beta.kubernetes.io/arch
label: 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
skydns
component has been replaced with the newkubedns
component 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-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. - 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
--containerized
by addingexport USE_CONTAINERIZED=true
to/etc/kubernetes/k8s.conf
- Renamed
kube-systemd
todocker-multinode
and the genericsystemd
OS to the genericdebian
OS - Caveats:
- Reboots aren't working nor supported. (Added to roadmap)
- Arch Linux ARM, the Pine64 and Scaleway suffers from the
docker pull
mtu 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!