It is an open –source container-orchestration system for automating application deployment, scaling and management. It aims to provide a “platform for automating deployment, scaling and operations of application container across cluster of hosts.
Automates various manual processes: for instance, Kubernetes will control for you which server will host the container, how it will be launched etc.
Interacts with several groups of containers: Kubernetes is able to manage more cluster at the same time.
Provides additional services: as well as the management of containers, Kubernetes offers security, networking and storage services.
Self-monitoring: Kubernetes checks constantly the health of nodes and containers.
Horizontal scaling: Kubernetes allows you scaling resources not only vertically but also horizontally, easily and quickly.
Storage orchestration: Kubernetes mounts and add storage system of your choice to run apps.
Automates rollouts and rollbacks: if after a change to your application something goes wrong, Kubernetes will rollback for you.
Container balancing: Kubernetes always knows where to place containers, by calculating the “best location” for them.
Run everywhere: Kubernetes is an open source tool and gives you the freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, letting you move workloads to anywhere you want.
Why it's good for learning Kubernetes
Control and automate deployments and updates.
Save money by optimizing infrastructural resources thanks to the more efficient use of hardware.
Orchestrate containers on multiple hosts.
Solve many common problems deriving by the proliferation of containers by organizing them in “pods” (see the last post!).
Scale resources and applications in real time.
Test and autocorrection of applications.