Kubernetes (commonly stylized as k8s) is an open-source container orchestration system for automating application deployment, scaling, and management.
It is a portable, extensible platform for managing containerized workloads and services, that facilitates both declarative configuration and automation.
It was originally developed and designed by Google and is now maintained by the Cloud Native Computing Foundation. Kubernetes v1.0 was released on July 21, 2015.
It works with a range of container tools, including Docker. Many cloud services offer a Kubernetes-based platform or infrastructure as a service (PaaS or IaaS) on which Kubernetes can be deployed as a platform-providing service.
Many vendors also provide their own branded Kubernetes distributions.
Why do you need Kubernetes and what can it do?
Kubernetes has a number of features. It can be thought of as:
- a container platform
- a microservices platform
- a portable cloud platform and a lot more.
Kubernetes provides a container-centric management environment. It orchestrates computing, networking, and storage infrastructure on behalf of user workloads.
Kubernetes orchestration allows your application services that span multiple containers, schedule those containers across a cluster, scale those containers, and manage the health of those containers over time.
Kubernetes defines a set of building blocks (“primitives”), which collectively provide mechanisms that deploy, maintain, and scale applications based on CPU, memory or custom metrics.
Kubernetes is loosely coupled and extensible to meet different workloads.
- Cluster Setup
- Labels and Selectors
- Resource Limits and Quotas
- Health checks
- Node Maintenance
- Taints and tolerations