Kubernetes is an innovative portable and extensible open-source system for the effective deployment, scaling and management of containerized applications originally designed by Google and currently maintained by the Cloud Native Computing Foundation. The approach provides Platform as a Service (PaaS) simplicity with flexibility of Infrastructure as a Service (IaaS) and portability across infrastructure providers.
Kubernetes was inspired by Google’s Borg Data Center Management software that builds upon a decade and a half of experience running production workloads at scale, combined with best-of-breed ideas and practices from the community.
Kubernetes provides a container-centric management environment that orchestrates computing, networking, and storage infrastructure on behalf of user workloads. Orchestration supports the building of application services that span multiple containers, schedule containers across a cluster, scale the containers, and manage the health of the containers over time. Kubernetes also integrate with networking, storage, security, telemetry and other services to provide a comprehensive container infrastructure.
Kubernetes defines a set of building blocks collectively, which together provide mechanisms for deploying, maintaining, and scaling applications. The components which make up Kubernetes are designed to be loosely coupled and extensible so that it can meet a wide variety of different workloads. The extensibility is provided in large part by the Kubernetes API, which is used by internal components as well as extensions and containers running on Kubernetes.
Old and New Way
Old Way: Applications on Host; Heavyweight, Non-Portable, Relies on OS Package Manager
New Way: Deploy Containers; Small and Fast, Portable, Uses OS-Level Virtualization
Kubernetes: Key Features
The key features of Kubernetes encompass:
- Automates rollouts and rollbacks
- Container balancing
- Configuration Management
- Horizontal scaling
- Intelligent Scheduling
- Interacts with several groups of containers
- Run everywhere
- Storage orchestration
- Service Discovery & Load Balancing
Container technology is driving the future of software development and is triggering a structural change in cloud-computing. Software developers are accepting container technology and organizations are adopting it at an explosive rate.
The benefits realized by successfully implementing Kubernetes include:
- Control and automate deployments and updates
- Orchestrate containers on multiple hosts
- Reduce IT expenses by optimizing infrastructural resources
- Improve employee productivity
- Scale resources and applications in real time
- Solve technical problems deriving by proliferation of containers by organizing them in “Pods”
- Test and auto-correction of applications
Kubernetes: Early Adopters & Users
A partial list of Kubernetes early adopters and users is outlined below:
- Goldman Sachs
- New York Times
- Samsung SDS