I was thinking about this project for a long time and finally, I was able to find some time to put things together. I know, these days it’s not a big deal to quickly spin up a Kubernetes cluster with most of the cloud service providers. But we don’t have full control over them as they are managed by cloud providers. Sometimes we all got requirements to change bits and pieces here and there to try new things in Kubernetes clusters. It’s always nice if we can quickly spin up a k8 cluster where we can manage all the pieces as we need.
At the time of this article, I managed to complete the Highly Available multi-master Kubernetes cluster as per the above architecture diagram. Once you apply the Terraform code, it will do the infrastructure provisioning and then the cluster configurations with Ansible. Although, I didn’t include the Ingress traffic management part and the post cluster configuration in this repo as I have already discussed them in the article linked here.
Let me walk you through the code and quick demo.
As you can see in the demo, We have full control over all the layers. for example, if we need to try out different container runtime, we can change the ansible-playbook and quickly spin up a new cluster with the required new configuration. One thing to note, I didn’t pay much attention to security hardening at the moment as this is just an experimental cluster. So this is not good for production workloads. But I’m planning to improve the code 😊 as soon as I found more time.
GitHub Repo : https://github.com/lkravi/kube8aws
I know that there are many areas in which we can improve on this repo. If you find anything interesting in this repo. feel free to contribute.
Top comments (0)