What is Kubernetes and its features ?
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 :-
|Managing containers on different nodes||Workload 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 ports||Schedules 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 failure||Follows – 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
- Declarative model of deployment – use a YAML and get the desired state of the cluster managed by Kubernetes
- Manages the health checks, Network routing , auto healing, scaling – to maintain the desired state – say minimum no. of containers for DB service to run.
- 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.
- It is a cloud native model of development and has managed cluster services in cloud providers like Azure, AWS and GCP