Search This Blog

Wednesday, April 27, 2022

Kubernetes Basics

 Official definition of Kubernetes

Open source container orchestration tool developed by Google and helps you manage containerized applications in different deployment environments like physical machines, virtual machines or cloud environment or even hybrid deployment environments.

The need for a container orchestration tool

  • Trend from Monolith to Microservices
  • Increased usage of containers
  • Demand for a proper way of managing those hundreds of containers
What features do orchestration tools offer?
  • High Availability or no downtime
  • Scalability or high performance
  • Disaster recovery - backup and restore
Kubernetes Basic Architecture
Made up with master node and couple of worker nodes where each node has kubelet process running on it. Kubelet is basically a kubertnetes process that makes it possible for cluster to talk to each other and actually executes some tasks on those nodes like running application processes. Each worker node has docker containers of different applications deployed on it. On worker nodes your applications are running.

Master node runs several K8 processes
  • API Server which also a container and an entrypoint to K8 cluster.
  • Controller Manager keeps track of whats happening in the cluster, may be if container died and needs a restart etc.
  • Scheduler ensures Pods placement.
  • etcd (key value storage) which basically holds at anytime current state of K8 cluster. It has all the configuration data inside and all the status data of each node and each container inside of that node and backup restore actually made of this etcd snapshot.
Kubernetes Basics Concepts
Pod is a smallest unit which you as a user will configure and interact with and basically a wrapper of container. In a worker node you gonna have multiple pods. Each pod is it's own self contained server with it's own IP address. Pods are recreated frequently and it gets new IP address on creation hence another component of K8 called service is used along with pod.

Tuesday, April 26, 2022

Horizontal vs Vertical Scaling

Horizontal scaling is adding more machines to deal with increasing requirements. These machines handle requests in parallel to improve user experience. 


Vertical scaling is replacing the current machines with more advanced machines to improve throughput and hence response time. The techniques are used in conjunction in real world systems.


Horizontal Scaling Points

  1. Load Balancing Required
  2. Resilient
  3. Network Calls
  4. Data Inconsistency
  5. Scales well as users increase

Vertical Scaling Points
  1. Load Balancing not required
  2. SPOF
  3. Inter process communication
  4. Consistent
  5. Hardware Limit

My Profile

My photo
can be reached at 09916017317