DEV Community

Cover image for Introduction to Kubernetes #1
Lakshya Gupta
Lakshya Gupta

Posted on

4

Introduction to Kubernetes #1

What is Kubernetes?

  • Kubernetes is an open-source container orchestration tool powered by Google.
  • It helps us manage apps that are made of containers.

What problems does it solve ?

  • Apps moving from a monolithic app structure to microservices comprise of isolated containers, and managing these containers can be a difficult task.
  • Kubernetes guarantees
    1. High availability
    2. Scalability
    3. Disaster Recovery

Basic architecture

  • There is one master node and connected to it are a couple of worker nodes.
  • Each node has a kubelet running on it that enables it to connect to other nodes.
  • Worker nodes are where the actual work is happening.
  • The master node runs several processes that are important to run Kubernetes. These processes are:
    • API Server: This is a container that is an entry point to the Kubernetes cluster.
    • Controller Manager: Keeps track of what is happening in the cluster.
    • Scheduler: It is responsible for scheduling containers on different nodes.
    • Etcd: It is key-value storage that holds the current state of a Kubernetes cluster at any given time. This is the backing store of Kubernetes
  • Worker nodes run heavier tasks than master nodes but the master nodes run more important tasks.

Basic Concepts

  • Pod: A pod is the smallest unit that a Kubernetes user can interact with.
  • On each worker node, there are multiple pods and on each pod, there are multiple containers.
  • We usually have one pod per application.
  • Each pod has its own self-containing server and its own internal IP addresses.
  • These pods connect to each other using this internal IP address.
  • If a pod dies a new pod is created which has a new IP address.

What is a service?

Definition: An abstract way to expose an application running on a set of Pods as a network service.

Pods get created and destroyed all the time in Kubernetes according to the need of the deployment. Every time a new pod is created it gets a new IP address and its connection with other pods gets lost. It would be inconvenient to adjust the IP addresses all the time. This is where services come to play.

A service is set in front of a pod(or replica of pods) and has its own IP address which is permanent.Clients use this IP address instead of the pods' IP addresses. So even if a pod dies and the IP address gets changed, it won't affect the communication between the the services.

Services have many functionalities, it has a permanent IP address and at the same time it is a load balancer.

More about it on the next blog :)
Stay Tuned!

Top comments (0)

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay