With the advent of microservice architecture, users to individually scale key functions of an application and handle millions of customers.
On top of this, technologies like Docker containers emerged in the enterprise, creating a consistent, portable, and easy way for users to quickly build these microservices.
While Docker continued to thrive, managing these microservices & containers became a paramount requirement. All you need is a robust orchestration platform which can manage those containers which host your entire application.
Kubernetes comes to the rescue.
Kubernetes is a robust orchestration platform which brings a number of features and which can be thought of as:
Kubernetes provides a container-centric management environment.
It orchestrates computing, networking, and storage infrastructure on behalf of user workloads. This provides much of the simplicity of Platform as a Service (PaaS) with the flexibility of Infrastructure as a Service (IaaS), and enables portability across infrastructure providers.
Below are the list of features which Kubernetes provides -
Service Discovery and load balancing: Kubernetes has a feature which assigns the containers with their own IP addresses and a unique DNS name, which can used to balance the load on them.
Planning: Placement of the containers on the node is a crucial feature on which makes the decision based on the resources it requires and other restrictions.
Auto Scaling: Based on the CPU usage, vertical scaling of applications is automatically triggered using the command line.
Self Repair: This is an unique feature in the Kubernetes which will restart the container automatically when it fails. If the Node dies, then containers are replaced or re-planned on the other Nodes. You can stop the containers, if they don't respond for the health checks.
Storage Orchestration: This feature of Kubernetes enables the user to mount the network storage system as a local file system.
Batch execution: Kubernetes manages both batch and CI workloads along with replacing containers that fail.
Deployments and Automatic Rollbacks: During the configuration changes for the application hosted on the Kubernetes, progressively monitors the health to ensure that it does not terminate all the instances at once, it makes an automatic rollback only in the case of failure.
Configuration Management and Secrets: All classifies information like keys and passwords are stored under module called Secrets in Kubernetes. These Secrets are used specially while configuring the application without having to reconstruct the image.