The Armely Ecosystem

An integrated ecosystem of cutting-edge services, with our state-of-the-art technology at the core of Armely's offerings.

Search Results


Killing Virtualization for Containers

Profile Picture

Leonard Mwangi Read Aloud
April 30th

COVID-19 effects are being felt far and wide, not only from human health but also the way organizations run applications. Those days of walking into a server room/data center and changing a drive, fix a bad NIC card or outright console connection are far behind us and have been for a while thanks to VMware, Hyper-V (I didn’t drink that cool-aid) et cetera.

Virtualization became attractive because we can run multiple machines (virtual machines) on a single physical server and share resources while still providing isolation to cater for security and scalability amongst serves and applications.

Where virtualization falls short is the inability to share some resources like operating systems (OS). It’s not every day we need to roll-out a full-fledged server to cater for a short-term development/testing/quality assurance need. If an environment can be rolled out at the minimalist the better which is where Kubernetes comes into the picture.

Here is a quick deep dive into what Kubernetes are and are not. Kubernetes are containers very similar to VMs but with isolation, properties to share OS among other applications. Thus, considered to be lightweight. The joy of Kubernetes is they are portable across clouds (example move them from AWS to Azure) and across OS distributions (and all the developers said hallelujah) thus giving us so much flexibility on what we can do with applications development. It’s worth noting Kubernetes is not a Platform as a Service (PaaS) even though there is common ground, remember is a container rather than a hardware-level solution.

Reasons to kill those VMs

1.      Storage Orchestration – Automatically mount storage of your choice to Kubernetes be it local storage public or private cloud storage.

2.      Bin Picking (my fav) – You provide a cluster of nodes, define your resource requirements (CPU, Memory, etc.) and let Kubernetes go work to fit your container where it makes the most sense.

3.      Self-healing – Wish we had this for humans in this COVID-19 season, but Kubernetes does have it, restarts or replaces container that fails, kill containers that don’t respond to you defined health check.

4.      Rollouts and Rollbacks – Want to automate the creation of containers while decommissioning the existing ones, Kubernetes allows you to automate the process.

5.      Discover and load balance – in case of high traffic, Kubernetes will discover and redistribute containers based on their DNS and or IP Addresses to ease the traffic.