kubernetes is an open-source system for scaling and it works for automating deployment and management of containerized applications.
Service discovery and load balancing
Kubernetes gives a single DNS name for a set of containers and their own IP addresses and can load-balance across them. To use an unfamiliar service discovery mechanism you no need to modify your application.
Automatically places containers based on their resource requirements constraints, while not sacrificing availability. Mix best-effort and critical workloads in order to drive up utilization and save even more resources.
Automatically mount the storage system of your choice, a public cloud provider such as GCP or AWS, or a network storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, or Flocker or from your local storage.
Replaces and reschedules containers when nodes die, kills containers that don’t respond to your user-defined health check, Restarts containers that fail and doesn’t advertise them to clients until they are ready to serve.
Automated rollouts and rollbacks
Kubernetes, While monitoring application health to ensure it doesn’t kill all your instances at the same time. It is progressively rolls out changes to your application or its configuration and Kubernetes will rollback the change for you. Take advantage of a growing deployment solutions ecosystem.
Secret and configuration management
Application configuration without rebuilding your image, deploy and update secrets without exposing secrets in your stack configuration.
Kubernetes can manage your batch and CI workloads along with the services, replacing containers that fail, if desired.
Scale your application up and down automatically based on CPU usage, with a UI or with a simple command.