Following are the essential features of Kubernetes.
Pod is a deployment unit in Kubernetes with a single Internet protocol address. A pod is a collection of containers, with shared storage and network, and a specification on how to run them. Each pod is allocated its own IP address. Containers within a pod share this IP address, port space and can find each other via localhost.
2. Horizontal Scaling
It is an important feature in the Kubernetes. The Horizontal Pod Autoscaler automatically scales the number of Pods in a replication controller, deployment, replica set or stateful set based on observed CPU utilization (or, with custom metrics support, on some other application-provided metrics)
3. Automatic Bin Packing
Kubernetes helps the user to declare the maximum and minimum resources of computers for their containers.
4. Service Discovery and load balancing
Kubernetes assigns the IP addresses and a Name of DNS for a set of containers, and also balances the load across them.
5. Automated rollouts and rollbacks
Kubernetes rolls out changes to the application or its configuration while monitoring application health to ensure it doesn’t kill all your instances at the same time. If something goes wrong, with Kubernetes you can rollback the change.
6. Persistent Storage
Kubernetes provides an essential feature called ‘persistent storage’ for storing the data, which cannot be lost after the pod is killed or rescheduled. Kubernetes supports various storage systems for storing the data, such as Google Compute Engine’s Persistent Disks (GCE PD) or Amazon Elastic Block Storage (EBS). It also provides the distributed file systems: NFS or GFS.
This feature plays an important role in the concept of Kubernetes. Kubernetes allows to replaces and reschedules containers when nodes die. It also kills containers that don’t respond to user-defined health check and doesn’t advertise them to clients until they are ready to serve.