Understanding Kubernetes
Understanding Kubernetes
Why Kubernetes?
Containers have transformed the way applications are developed, packaged, and deployed.
However, as the number of containers grows, managing them manually becomes
challenging. This is where Kubernetes comes in. It allows you to:
🔄 Roll Out Updates: Updates are seamlessly managed with minimal disruptions through
rolling updates and rollbacks.
🌐 Optimize Resource Usage: Efficiently utilize resources with load balancing and
auto-scaling.
Kubernetes Architecture
🖥️Nodes: Nodes are the worker machines that run containers. They can be physical
servers or virtual machines.
● etcd: is a distributed key-value store that is used to store the cluster state.
Kubernetes stores the file in a database called the etcd. Besides storing the cluster
state, etcd is also used to store the configuration details such as the subnets and the
config maps.
● Node Manager, it manages the nodes. It creates new nodes if any node is
unavailable or destroyed.
● Replication Controller, it manages if the desired number of containers is
running in the replication group.
● Endpoints controller, it populates the endpoints object that is, joins Services
& Pods.
● Pods: A pod is the smallest deployable unit in Kubernetes. It can contain one or
more tightly coupled containers that share network and storage resources. Pods are
used to group containers that need to work together.
● Services: Services provide a consistent way to access and communicate with pods.
They allow you to abstract the underlying network details, making it easier to connect
to your application. There are different types of services, including ClusterIP,
NodePort, and LoadBalancer.