Many people have probably heard of the term Kubernetes, but what is it really? The name happens to be an actual Greek word for the captain of a ship. Okay sounds good, but what do Greek ship captains have to do with performant technology workloads? The answer is in the orchestration. The captain of a ship in the ancient world acted as a manifold for a tremendous amount of information streaming in and responses to manage processes streaming out. Kubernetes and similar orchestration frameworks allow a control node to manage agent nodes that in turn run various processes. These processes may include serving a traditional webpage, running an application, or other tasks. Duplication of agent nodes enables a framework that operates without interruption to the end user should one of them fail or if demand overwhelms capacity of all agent nodes.
Containerization allows for many containers to run on shared CPU resources, and this is at the source of the analogy with container ships and the graphic design of Docker’s branding. Virtualization is sometimes confused with containerization, but virtualization does not share CPU resources. For the average person who desires to get a website online, neither Kubernetes nor any other container orchestration is probably necessary. Docker is certainly a useful tool, but the orchestration of containers allows for security, observability, and scalability to be partitioned for the most control.
I am currently preparing for the CKA exam given by the Linux Foundation and am building practice clusters to work through the LFS258 (Kubernetes Fundamentals) course. I have some previous experience with Kubernetes and it is EXPENSIVE to run! When a technology person starts talking about Production resources to the non-corporate user that means outrageously expensive. Provisioning clusters to run Kubernetes was very expensive up until relatively recently. The K3s project is just one example of conformant options that don’t cost $150 or more per month in cloud resources.
The microservices architecture involved with container orchestration permits advanced IP tracking and low-latency performance for applications. This means advanced security features and streaming optimization is baked into the framework. It is more difficult to monitor traditional server architecture using Apache in a LAMP stack and also more difficult to scale such resources up and down if traffic fluctuates (typical for most services with many end users/consumers). Efficient container orchestration includes using visualization tools such as Prometheus and Grafana to monitor resources at the granular level required to take advantage of the advanced features possible with container orchestration.
I use AWS Lightsail for several projects at the moment and am especially enthusiastic about the service because it allows Port 25 to be opened for Postfix SMTP purposes. This is restricted by most cloud providers and is actually not possible on EC2 instances offered by AWS! This blog post from 2020 outlines how to use Lightsail to set up a small cluster that can run K3s.
I’m setting up my Lightsail cluster now and will post about the experience later this week. I plan to set up clusters and application workloads in preparation for the CKA exam, which I will take no later than 12/07/23. I plan to use the cluster I set up for exam prep to run workloads on at least one domain. My goal is to create one working application with a working CI/CD pipeline and certificate structure for SSL and pod-level observability during my preparation for the CKA exam. I will post an update after I have attempted the instructions in Eamon’s blog post.
#kubernetes #containers #aws #lightail #k8s #k3s #cluster #orchestration #microservices