In short, Kubernetes is an adaptable and versatile platform designed to manage containerized applications and services.
It supports both declarative configurations and automation, enabling streamlined deployment and operation. With a rapidly expanding ecosystem, it offers extensive support, services, and a diverse array of tools.
Fun fact!
The term “Kubernetes” stems from the Greek word for “helmsman.” Often abbreviated as K8s, it was introduced as an open sourced project by Google in 2014, combining their years of experience with community contributions.
Just like we abbreviate internationalization – i18n and localization – l10n, Kubernetes is often abbreviated as K8s…much shorter to write! :)
Kubernetes was introduced by Google in 2014 based on their years of experience of running production systems. Over the year it has evolved with community contributions.

Why Use Kubernetes?
We know that containers (like docker for instance) provide an efficient way to package and run applications. However, ensuring smooth operations in a live environment requires handling container orchestration, such as automatically launching replacements if one fails.
That’s where Kubernetes proves invaluable, offering a robust framework for deploying, scaling, and maintaining your systems reliably.
Finally, Kubernetes also supports various deployment strategies, such as blue-green and canary deployments.
What Kubernetes Can Do:
- Self-Healing
Faulty containers are automatically restarted or replaced. Containers that fail to pass health checks are removed from service until they’re ready, ensuring reliable operations. - Service Discovery & Load Balancing
Kubernetes can expose applications using DNS names or IP addresses. It can also balance incoming traffic to prevent overloads and maintain a stable system performance. - Resource Optimization
Kubernetes allocates tasks to a pool of nodes based on each container’s specified CPU and memory requirements, maximizing hardware utilization. - Controlled Rollouts & Rollbacks
Define your application’s ideal state, and Kubernetes will progressively adjust the current setup to match. This capability allows automated deployments, resource adoption, and seamless transitions between different container versions. - Scalability
Quickly adjust the number of active instances using the command line, a graphical interface, or predefined rules based on resource usage. - Storage Management
Kubernetes simplifies connecting to storage solutions, allowing you to integrate local storage, cloud-based options, and more. - Configuration and Secret Management
Sensitive information, such as credentials and API keys, can be securely stored and updated without altering the underlying container images. - Job Scheduling
Besides managing services, Kubernetes handles batch processing and CI/CD jobs, automatically restarting containers if necessary. - Dual-Stack Networking
Kubernetes supports both IPv4 and IPv6 addresses, allowing you to allocate either type to Pods and Services as needed. - Extensible Architecture
Add new capabilities to your cluster without modifying the core system, making it easier to extend functionalities as your requirements evolve.
Key Elements of a Kubernetes Cluster
Now that we have a sound idea of it’s purpose, let’s discuss the various components of a Kubernetes clusters. Kubernetes clusters are made up of several components that work together to manage containerized applications.
Structure of a Kubernetes Cluster
At its simplest expression, Kubernetes setup, as displayed in the picture below, consists of two main components:
- the control plane
- the worker nodes

Below is a breakdown of these components and their roles.
Core Elements of a Kubernetes Cluster
Control Plane
The control plane is responsible for managing the overall state of the cluster, ensuring that workloads run as expected. Key components include:

- apiserver: Acts as the main entry point for the Kubernetes API, allowing interaction with the cluster.
- etcd: A distributed key-value store that keeps track of all cluster data and configuration states.
- scheduler: Based on various parameter (ressource availability, SW/HW policy constraints, etc), the scheduler automatically selects the most appropriate nodes to run newly created or unscheduled Pods.
- controller-manager: Runs several controllers to manage different resources in the cluster, such as nodes and endpoints. There are different types of controllers such as node controller, job-controller, endpoint slice controller, service account controller, etc.
- cloud-controller-manager: Optionnally, a cloud-controller-manager allows integration with cloud service providers, handling cloud-specific features like load balancing and node management.
Node Components
As we talk about extensibility and availability, it is easy to understand that a cluster is built off of 1 or many nodes. It is on the nodes that the cluster maintains and runs Pods, the Kubernetes runtime environment host of the application containers. To do so, As pictured below, nodes operate specific softwares.

- kubelet: Ensures containers defined in the Pods are running correctly and in compliance with their specifications.
- kube-proxy: Manages network rules to maintain connectivity between services and Pods.
- Container Runtime: The underlying software responsible for running the containers. Popular options include Docker and containerd.
Enhancements and Add-ons
To enhance cluster capabilities, Kubernetes supports various add-ons:
- DNS: Facilitates service discovery by providing DNS resolution for all services within the cluster.
- Dashboard (Web UI): A graphical interface for monitoring and managing the cluster.
- Container Resource Monitoring: Gathers performance metrics for containers and stores them for future analysis.
- Cluster Logging: Collects and centralizes logs from Pods to enable better troubleshooting and auditing.
Customizable Architecture
The deployment of Kubernetes components is flexible, allowing for customization based on the size and purpose of the cluster. Whether you’re running a small test environment or managing a large production setup, Kubernetes offers a variety of configurations to suit your needs.
For more detailed information on how to architect your cluster and choose the right setup for your requirements, consult Kubernetes documentation on cluster architecture.
