Kubernetes (K8s) is a powerful orchestration platform designed to manage containerized applications at scale. While its core architecture remains consistent, its deployment varies significantly based on whether it's running on-premises, in Minikube (local setup), or on a public cloud provider. This blog explores Kubernetes architecture across these environments, detailing their design, components, and deployment strategies.
Core Kubernetes Architecture 🏗️

Regardless of the deployment environment, Kubernetes follows a master-worker node architecture, which consists of:
1. Control Plane (Master Node)
The control plane manages the cluster and ensures the desired state of the system. It includes:
API Server (kube-apiserver) 📡 – The gateway for all cluster operations.
Controller Manager (kube-controller-manager) 🔄 – Handles node lifecycles, replication, and endpoints.
Scheduler (kube-scheduler) 📊 – Assigns workloads (pods) to available nodes based on resources.
etcd 🗂️ – A distributed key-value store that maintains cluster state and configuration.
2. Worker Nodes
Each worker node runs workloads (pods) and includes:
Kubelet 🔄 – The node agent that communicates with the API server and manages container execution.
Container Runtime 🛠️ – Software like Docker, containerd, or CRI-O to run containers.
Kube Proxy 🔌 – Handles network communication and load balancing within the cluster.
Pods 🏠 – The smallest unit of deployment in Kubernetes.
Kubernetes Deployment Architectures
The way Kubernetes is deployed varies based on the infrastructure, whether it is on-premises, Minikube, or a public cloud provider.
1. On-Premises Kubernetes Deployment 🏢

Deploying Kubernetes on-prem gives full control over hardware, networking, and security. Organizations often use bare-metal servers or virtual machines to run Kubernetes.
Key Characteristics:
✅ Requires manual installation (e.g., using kubeadm, k3s, or RKE).
✅ Needs a separate etcd cluster for high availability.
✅ Uses software-defined networking (Calico, Flannel, Cilium).
✅ Requires external load balancers (e.g., MetalLB) for service exposure.
Example On-Prem Deployment using kubeadm
# Initialize Kubernetes master node
kubeadm init --pod-network-cidr=192.168.1.0/16
# Join worker nodes
kubeadm join <master-node-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Pros & Cons
✅ Full control over infrastructure & security.
✅ No dependency on cloud providers.
❌ Higher maintenance effort (manual upgrades, networking, storage setup).
❌ Requires on-prem load balancer & monitoring setup.
2. Minikube Deployment (Local Kubernetes) 🖥️
Minikube is a lightweight Kubernetes implementation that runs on a single local machine, perfect for testing and development.
Key Characteristics:
✅ Runs a single-node Kubernetes cluster on a local machine.
✅ Uses virtual machines (VMs), Docker, or bare-metal for execution.
✅ Supports different drivers (Docker, VirtualBox, Hyper-V).
✅ Includes built-in LoadBalancer & Ingress Controller for local testing.
Example Minikube Deployment
# Start a Minikube cluster
minikube start --driver=docker
# Deploy a sample application
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
Pros & Cons
✅ Fast, lightweight, and ideal for local development.
✅ Requires minimal system resources.
❌ Not suitable for production (single-node setup).
❌ No built-in high availability.
3. Public Cloud Kubernetes (EKS, GKE, AKS, DOKS, etc.) ☁️

Public cloud providers offer managed Kubernetes services such as:
Amazon Elastic Kubernetes Service (EKS) 🌍
Google Kubernetes Engine (GKE) 🔵
Azure Kubernetes Service (AKS) 🟦
DigitalOcean Kubernetes (DOKS) 🏝️
Key Characteristics:
✅ Fully managed control plane (No need to manage API server, etcd, etc.).
✅ Seamless cloud integrations (Auto-scaling, IAM roles, storage, monitoring).
✅ Multi-zone & high availability options.
✅ Built-in LoadBalancer & Ingress with cloud-native solutions.
Example AWS EKS Deployment
# Create an EKS cluster using eksctl
eksctl create cluster --name my-cluster --region us-west-1 --node-type t3.medium --nodes 3
Pros & Cons
✅ Easier to deploy & scale (cloud providers handle infra setup).
✅ Highly available & auto-scalable.
✅ Integrated monitoring & security features.
❌ Vendor lock-in with cloud provider.
❌ Higher operational costs compared to on-prem solutions.
Comparison Table: On-Prem vs. Minikube vs. Public Cloud
Feature | On-Prem Kubernetes | Minikube | Public Cloud Kubernetes |
Control Plane | Self-managed | Single-node | Cloud-managed |
High Availability | ✅ Yes | ❌ No | ✅ Yes |
Scalability | ✅ Manual | ❌ No | ✅ Auto-scale |
Networking | Custom (Calico, Flannel) | Built-in | Cloud-integrated |
Load Balancing | Manual (MetalLB) | Built-in | Managed LB |
Ideal Use Case | Production, enterprise infra | Local development | Scalable, production-ready |
Final Thoughts
Each Kubernetes deployment model has its strengths:
On-Prem Kubernetes provides full control and security.
Minikube is great for testing and development.
Public Cloud Kubernetes is ideal for scalable, managed workloads.
Understanding the differences helps in choosing the right Kubernetes environment for your workloads! 🚀
Comments