Kubernetes

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.

How does Kubernetes Work?

Containers are designed to be as light-weight as possible. As a result, they are fragile and transitory. Instead of boosting the durability of an individual container, Kubernetes uses the unstable nature of a container and turns that weakness into an asset.

Kubernetes only needs a general framework of what you would like your cluster to look like. This framework is usually a basic manifest file you provide to Kubernetes using a command-line interface tool.

The default Kubernetes command-line interface is called kubectl. Kubectl is used to directly manage cluster resources and provide instructions to the Kubernetes API server. The API server then automatically adds and removes containers in your cluster to make sure that the defined desired state and the actual state of the cluster always match.

The main elements of a Kubernetes cluster are the Master NodeWorker Nodes, and Pods. The components that make global decisions about the cluster, like the API server, are located on the Master Node.

Kubernetes Features

Automated rollouts and rollbacks

Kubernetes progressively rolls out changes to your 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, Kubernetes will rollback the change for you. Take advantage of a growing ecosystem of deployment solutions.

Service discovery and load balancing

No need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives Pods their own IP addresses and a single DNS name for a set of Pods, and can load-balance across them.

Storage orchestration

Automatically mount the storage system of your choice, whether from local storage, a public cloud provider such as GCP or AWS, or a network storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, or Flocker.

Secret and configuration management
Deploy and update secrets and application configuration without rebuilding your image and without exposing secrets in your stack configuration.
 
Automatic bin packing

Automatically places containers based on their resource requirements and other constraints, while not sacrificing availability. Mix critical and best-effort workloads in order to drive up utilization and save even more resources.

Self-healing

Restarts containers that fail, replaces and reschedules containers when nodes die, kills containers that don’t respond to your user-defined health check, and doesn’t advertise them to clients until they are ready to serve.