Get startedGet started for free

Container orchestration with Kubernetes

1. Container orchestration with Kubernetes

Previously, we touched upon Kubernetes. Now let's get a little more detailed about how container orchestration can be applied and take a close look at Kubernetes, the de-facto container orchestrator for many organizations!

2. Introducing Kubernetes

Kubernetes, often abbreviated as K8s (with 8 letters between K and s), is a software platform that simplifies and automates the deployment, scaling, and management of containerized applications. Originally developed by Google and later open-sourced in 2014, it is now maintained by the Cloud Native Computing Foundation. According to the foundation, most organizations nowadays use or evaluate using Kubernetes.

3. Introducing Kubernetes

Kubernetes groups the containers that make up an application into logical units. More on that soon! It's also important to note that Kubernetes operates as a distributed system, meaning that its various components are spread across different machines. These machines can be virtual or physical, hosted either in the cloud or on-premise.

4. Overview of Kubernetes components

Here is a quick overview of important components of the Kubernetes architecture! Let's go through them one by one!

5. Pods as smallest deployable unit

A pod is the smallest deployable unit in Kubernetes, consisting of one or more containers that share the same computing resources. Each pod serves as a unique environment in which applications run.

6. Nodes as smallest hardware unit

One or more pods are grouped into a node, and each node serves as the host on which the pods run. Nodes are the smallest unit of computing hardware in Kubernetes, representing a pool of computing resources, whether virtual or physical, hosted in the cloud or on-premise. Rather than being actual custom machines, nodes abstract machines, so any node can be easily replaced with another node and everything will work the same.

7. Node management via control plane

A specific pod does not always run on the same node. This is where the Control Plane comes in. The Control Plane manages nodes and pods and ensures efficient resource allocation by smartly assigning pods to available nodes. The Control Plane is also known as the brain of the cluster.

8. Grouping nodes in a cluster

A Kubernetes cluster includes all previously mentioned components and is a group of up to multiple thousands of nodes. In a cluster, the resources of individual nodes are pooled together and form a more powerful super-machine - this super-machine is the cluster! One benefit of the Kubernetes architecture is the convenience of not having to worry about which specific "machine" (or "node" in Kubernetes) is running a particular application. Kubernetes takes care of that for you!

9. Docker and Kubernetes

While Docker is the go-to containerization platform for developers, Kubernetes actually uses a slimmer container engine, such as containerd, to efficiently orchestrate large numbers of containers. Why is that? While Docker is optimized for developer experience and ease of use, Kubernetes is optimized for efficiency and scalability. So while Docker shines with its user experience when dealing with one or a few containers, Kubernetes is optimized for speed when dealing with many containers.

10. Let's practice!

Now let's test your understanding of Kubernetes and its architecture!