It’s been a while since I’ve been running a kubernetes cluster at my home built using scrap hardware. The cluster is doing great and I’m amazed by how we can build such an amazing thing with hardware that I used to consider of no use.

I wanted to host web applications in the cluster and ensure that:

  1. I can access my web applications from anywhere if needed
  2. I can use the lab to host some web applications which do not have strict uptime requirements.

Bringing in traffic is not so trivial but together we can make this work!

Basic Strategy


I have been working lately on building my home-lab using old hardware on which I can run containers. Initially I had setup a cluster using microk8s which didn’t work out so well and I have shared my insights for the same here: https://vik-y.medium.com/what-i-learned-with-my-struggle-with-microk8s-home-lab-part-3-1d820f5e9420.

“Once Bitten, twice shy” — I took extreme caution while choosing next cluster setup tool. The options in front of me were k3s and kubeadm. Kubeadm is too complex to deal with, k3s is as simple as microk8s and very lightweight, only downside being that it can create single master cluster only which as of now isn’t…


So I started off on this “joyful” road after looking at https://microk8s.io/. The website looks so clean and the clear set of instructions that they give you makes it look extremely promising and then the add-ons are a cherry on top — Well not really.

After dumping docker-swarm for my home-lab and deciding to use Kubernetes the first thing I wanted to try out was microk8s. What I did not realise was that it will turn out to be an awful experience which will take me days to figure out things and eventually dump it.

DISCLAIMER: I was trying out…


I have been working lately on building a small lab at my home to run containers. In the beginning I decided to use docker swarm because of its simplicity. Since then there has not been a single day when I haven’t given a second thought to it. After all of it today, I finally gave up and decided to dump swarm for kubernetes.

These are the exact thoughts which were going on in my mind:

  • If all I want is to run containers across multiple nodes then there’s nothing better than swarm — I still agree with this. …


In this part I am going to create an EC2 instance, setup openvpn on it and connect all nodes at my home to the VPN. You can read the previous part here

Last week I started working on building a home lab in which I can run containers and non critical workloads. I am already stuck with deciding if I should use docker-swarm or consider kubernetes. In last few days I’ve come across some brilliant tools to like k8s and microk8 to run lightweight kubernetes cluster and that has made me think. I have still not made a decision because…


How it started?

Sometime last year I started collecting old hardware to build a lab setup where I can experiment with multiple tools without paying a premium to the cloud providers. I realised that the processors on our old laptops/PCs are quite capable these days and rather than throwing them out in trash we can use them for many meaningful things. So I set out to collecting hardware which looked like trash to others and started setting them up in my bedroom (literally) to run containers.

(UPDATE: I ended up choosing Kubernetes in the end) Before we go any further I would like…


Having used docker on linux all my life, when I used it on MacOS for first time I was in for some unexpected shock. I wasted some time for no reason. Putting it out here so that it might help someone.

TL;DR -> If you are running docker containers on your mac then consider increasing RAM size of the docker VM from default 2GB to atleast 4GB.

So what exactly happened?

I started ELK stack on my mac using docker-compose. The heap size I was using for Elasticsearch was around 1GB + I had kibana and logstash in the compose file as well. I…


Cloudwatch is an amazing service by AWS which lets you store metrics, logs and events. Metrics are basically numbers which help you evaluate your service performance. Logs are application logs or system logs. Events are specific to AWS — for example every change/action on any AWS resources will trigger an event .

Before you read further, I have also made a video on this which takes nextcloud logs and stores them on cloudwatch: https://www.youtube.com/watch?v=SbqQxbYDyZE&t

Problem Statement

You are running an application on an EC2 instance. The application writes logs to a file. You want to store these logs in long term —…

Vikas Yadav

SRE at Linkedin

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store