This tutorial is inspired by the Kelsey Hightower's Kubernetes The Hard Way tutorial, but targeted to the Raspberry Pi. This guide is not for people looking for a fully automated command to bring up a Kubernetes cluster. If that's you then check out Google Container Engine, or the Getting Started Guides.
This tutorial is optimized for learning, which means taking the long route to help people understand each task required to bootstrap a Kubernetes cluster. This tutorial can be completed on the following platforms:
The results of this tutorial should not be viewed as production ready, and may receive limited support from the community, but don't let that prevent you from learning!
The steps in this tutorial are "AS IS" without any warranties and support. I'm not responsible for any misconfiguration or damages of the Raspberry Pi equipment involved on this tutorial.
The target audience for this tutorial is someone who wants to get some hands on skills with the Kubernetes cluster and wants to understand how everything fits together. If you're planning to support a production Kubernetes cluster, I highly recommend following Kelsey's tutorial instead
. After completing this tutorial I encourage you to automate away the manual steps presented in this guide.
- This tutorial is for educational purposes only. There is much more configuration required for a production ready cluster.
- Kubernetes 1.4.6 (ARM)
- Docker 1.12.3 (ARM)
- etcd 3.1.0-rc.1 (Built from source for ARM)
- CNI Based Networking
- Secure communication between all components (etcd, control plane, workers)
- Default Service Account and Secrets
The resulting cluster will be missing the following items:
- Cluster add-ons
- Logging
- No Cloud Provider Integration
- Setup Kubernetes API Server Frontend Load Balancer
This tutorial assumes you have access to one of the following:
- 5 Raspberry Pi 2/3 Model B
- 2016-09-23-raspbian-jessie-lite or newer
- Infrastructure Provisioning
- Setting up a CA and TLS Cert Generation
- Bootstrapping an H/A etcd cluster
- Bootstrapping an H/A Kubernetes Control Plane
- Bootstrapping Kubernetes Workers
- Configuring the Kubernetes Client - Remote Access
- Managing the Container Network Routes
- Deploying the Cluster DNS Add-on
- Smoke Test
- Cleaning Up