Consumer NVIDIA Graphics Cards for Kubernetes Workloads

Preface In the guide, I will target utilizing consumer-grade graphics such as the GTX and RTX series of graphic cards from NVIDIA for container workloads on Kubernetes. If you have read through my previous posts , I am migrating the services I used to host on plain old docker-compose to Kubernetes. One such workload was Jellyfin, which was hobbling when using its transcoding feature on the puny Intel Iris Plus 655 integrated graphics. When I bought new hardware for the new cluster, I picked up an NVIDIA T400 to go along with it. Although not squarely consumer-grade, it is very similar to one, as in, there is no support for it in ESXi for GPU virtualization or anything special like that. ...

March 18, 2022 · 6 min · Adyanth Hosavalike

Docker Desktop Replacement: macOS Editon

Motivation Docker recently updated its terms making the Docker Desktop for macOS and Windows free only for personal use. Any business with more than 250 employees or more than $10 million annual revenue needs to buy its Docker Business subscription. For me, the Docker Desktop was already a hit and a miss. It was great when it worked but a pain to troubleshoot when it did not. Also, it does not bode well when they make software based on open source tools paid after it was free for a long time. Now is the time to find an alternative for this. ...

January 8, 2022 · 8 min · Adyanth Hosavalike

Photon OS: A Perfect base for Docker and Kubernetes

Photon OS is an open-source minimalist Linux operating system from VMware, highly optimized for container workloads. Crazy fast How optimized is it, you ask? The minimal image weighs in at a tiny 470MiB, installs in 20 seconds, uses less than 1GiB of disk space after install, boots in 10 seconds (including the GRUB wait time!), and consumes less than 150MiB RAM after boot. It cannot get better than that (maybe VMware surprises me in the next release!). ...

January 1, 2022 · 3 min · Adyanth Hosavalike

Redundancy for DNS: Keepalived + Gravity Sync

Requirement for High Availability In the previous post , I talked about how I use Pi-hole for my DNS resolution. DNS is the core component for the internet to work, so if I were to be patching or rebooting the host running Pi-hole, no devices in my home network would be able to use the internet. A simple fix would be to run two separate hosts with Pi-hole, like another Raspberry Pi Zero. But, in both Windows and Linux based operating systems, I’ve seen issues where the time to switch to the secondary DNS when the primary goes down is a lot, and it leaves with a gap in time where the internet is still down for the end user. ...

December 19, 2021 · 5 min · Adyanth Hosavalike

Deploying an application on Kubernetes with Rancher

Now that I have a Kubernetes cluster handy, I wanted to get my hands dirty by deploying my first application on it. What else is better than running an application I wrote myself to learn something to double up on the investment? If you want to read up on Short{Paste} , the application I wrote, you may read my blog post on it. App deployment I started by switching from Global to the Local cluster’s Default namespace/project. From the Workload tab, clicking on Deploy takes me to the deploy workload page. Here, I start by naming the workload as shortpaste and selecting the docker image adyanth/shortpaste. I leave the port mapping empty for now since I plan to add a layer 7 Ingress rather than a layer 4 NodePort or a Layer 4 load balancer. Under environment variables, I add what my app expects. Finally, for now, I let the scale default to 1 and hit Launch. ...

July 25, 2021 · 8 min · Adyanth Hosavalike