basic prerequisites
while development,
at first people used to buy physical servers to deploy their application.
then AWS came into picture, and developers, startup started to use the AWS cloud system.
AWS - it is a cloud computing platform, used by developers, startups, to build their application on the cloud, it provides a on-demand resources, and easy to use.
now everything was on the cloud, everything became cloud native and on a different machine as always.
now, sometimes the code written code in windows and deploying the code in some other OS like the cloud platform was hard. This was solved by VMs.
but there is a problem, it to heavy-weighted for the system, their own OS, this was solved by docker, containerized application, which are light weighted.
so, managing these containers was absolute, so Kubernetes came into picture.
what is it?
- it is a orchestration platform that automating deployment, scaling and managing containerized application.
- so, basically its like a conductor(Kubernetes) managing the musicians(containers) to ensure a coordinative and optimized performance.
- this also creates a generic development of the containerized application, meaning that applications are not specific cloud dependent.
- it can run in AWS ECS(elastic container system) , DO(digital ocean) , GCP(google cloud platform).
Kubernetes Architecture -
Cluster a group of nodes(control plane , compute nodes) where Kubernetes runs workload. these are the core units of the Kubernetes.
-
Control plane is responsible for maintaining the desired state of the cluster, such as which applications are running and which container images they use. its like the brain of the cluster.
- API server is the central interface, all commands pass through it.
- Scheduler assigns the pods to the nodes based on availability.
- Controller Manager monitors cluster state and ensures desired matches the actual state.
- etcd key-value store maintaining cluster configuration date.
-
Worker nodes are the machines in a Kubernetes cluster that actually run your containers.
-
KubeletAgents ensuring containers in pods are running as instructed. - kube-proxy manages networking, routing traffic between pods and services.
- Nodes use container runtimes.
-
-
Objects and Resources
- pods/Containers Smallest deployable units, hold one or more containers.
- Services exposes pods to network traffics.
- Deployment manages pod replicas and rolling updates
- Namespace divides cluster resources logically for isolation.
basic flow,
there is a physical server that is running the control plane, this is responsible for managing the workernodes,
this control plane runs separately from the worker node(it can run in same machine in development phase).
lets say u want to run two nginx containers,
this instruction is sent to control plane through API server.(authentication is done, weather the request is made by a authenticated system)
now, the API server tells the Controller to create two pods with nginx container, controller creates a pod, now the pod is created. now to run this we need a physical server to run this pods.
now the Scheduler checks for unassigned pods and assigns pods to the worker nodes. it also distributes the pod to the worker nodes.
the worker node is basically where your actual code runs.
now, basically the scheduler through the API server sends the message to kubelet in the worker node to start the pod which was unassigned.
Kubelet's main job it to ensure that containers that are scheduled are running in the node.
Kube proxy - redirecting of network traffics.
here desired state is matched with the current state.

Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.