Kubernetes is a container orchestration tool, opinionated. Built by the guys from Google (CoreOS, and Apache Mesos contributed too).
Building a robust architecture for any service is crucial, with the rise of the micro-services and the need to scale and be fault tolerant, using containers is the way to go.
Isolating concernes, each service runs on its on container, can be updated, replicated for scale, or replaced because of fail.
But for this we need a strong orchestration tools, since we will be using docker. Many technologies can fit this roll today:
- AWS ECS
- Docker Swarm
- Mesosphere (Apache Mesos)
- Docker Tutum
My choice is Kubernetes. I think more than 10 years of experience can give you a very good idea about what you should or shouldn’t do. Kubernetes is the result of Google experience managing containers along Borg and Omega. I can build a very cheap cluster for less than 300 euros to test on it. Rather than payed services like Tutum, AWS ECS or even GCE (have kubernetes too).
To build the cheapest Kubernetes cluster you will need at least 3 nodes (to test many features) :
3 raspberry pies.
3 ethernet cables.
1 router with at least 4 ports (I used 8 for future extension).
3 SD cards (4G minimum, I used 8 Go).
Things to avoid:
You cannot use the Debian Jessie distribution from Raspberry pi website because one of the kernel feature required by docker is not activated. You have to recompile the kernel. It will take ages.
Use the HypriotOS distribution which is built to run Docker on ARM and have a very good support community.
To install Kubernetes on the pies you will have to go through the Kube documentation. If you want to go a little faster, you can use luxas/kubernetes-on-arm. It makes the process very easy to install and experiment with.
Installing it on your own,will help you learn more about different pieces of the system.
What can I do next ?
Deploy small Python app and test the magic. See you next time, with some Pods and a service.