Kubernetes is used to create applications that are easy to manage and deploy anywhere
Kubernetes is a portable, extensible, open-source container platform for managing containerized workloads and services. Kubernetes has all the capabilities to automate container deployment, load balancing, and auto-scaling.
Virtualized Deployment: Virtualization introduced running multiple Virtual Machines (VMs) on a single physical server, allowing better resource utilization and isolation. VMs each have their own OS, improving security and scalability while reducing hardware costs.
Container Deployment: Containers, unlike VMs, share the same OS but are lightweight and portable. They offer a decoupled, efficient solution with their own filesystem and resource allocations, enhancing flexibility across clouds and OS distributions.
Kubernetes Components
The components of Kubernetes fall into two main categories:
Control plane components:
- The Kubernetes control plane is the set of tools that manages clusters and the workloads running on them. It includes an API server, a workload scheduler, a key-value store, and an object controller.
Nodes
- Kubernetes nodes are the physical or virtual machines that host workloads. Kubernetes nodes are managed by an agent called Kubelet. Each node also runs a network proxy called Kube-Proxy. The nodes need an operating system and a container runtime, too, in order to host containers.
- There are two types of nodes:
Master nodes, which host the control plane software.
Worker nodes, which host individual workloads
Difference Between a Kubernetes Cluster, Pod, and Node
A cluster is a set of nodes that are managed by Kubernetes. Nodes are individual servers within that cluster. Pods are workloads that run on nodes.