What is Kubernetes and its features ?

Demystifying Kubernetes

Kubernetes (aka k8s) helps solves multi fold problems we can face while putting an application that’s required to scale while on production.

It is mainly used as an orchestrator of containers in a cluster environment (i.e. multi-node environment for distributed applications).

The following are the problems and the role it plays in solving :-

ProblemsKubernetes features
Managing containers on different nodesWorkload placement in multi-node cluster
Aim – Manage services/application or their replicas spread across
different nodes effectively – be it scheduling/health checks
Manage access containers with same portsSchedules containers with same ports in different “pods”
aka different logical separation where each pod is a different IP

Aim – Less conflict in operating containers
Auto Healing on container failureFollows – desired state principle -if a container is down,
it will immediately work to bring it up again.

Aim – As less down time or lag in responding as possible

K8s Features

  1. Declarative model of deployment – use a YAML and get the desired state of the cluster managed by Kubernetes
  2. Manages the health checks, Network routing , auto healing, scaling – to maintain the desired state – say minimum no. of containers for DB service to run.
  3. Has over 60+ objects or ways of instantiating K8s objects apart from the containers that can be used by applications at scale. For example – ConfigMaps, Secrets, Cron Jobs, Ingress etc.
  4. It is a cloud native model of development and has managed cluster services in cloud providers like Azure, AWS and GCP