Kubernetes (or k8s, or “kube” ) 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) / Containers as a Service (CaaS), simplicity with flexibility of Infrastructure as a Service (IaaS) and portability across infrastructure providers. It works effectively with a range of recognized container tools, including Docker.
Kubernetes was inspired by Google’s Borg Data Center Management software that builds upon a decade and a half of experience of deploying production workloads at scale, combined with best-of-breed practices and technical creativity from the community.
The seven spokes in the above Kubernetes logo refer to the project’s original name:
Kubernetes provides a container-centric management environment that orchestrates computing, networking, and storage infrastructure on behalf of user workloads. Kubernetes provides the orchestration and management tools to employ containers, at scale that allows organizations to build application services that span multiple containers, schedule containers within a cluster, scale the containers, and continually manage container health. Kubernetes also provides for integration with networking, storage, security, telemetry and additional support services to provide an inclusive container infrastructure.
A container is a mini-virtual device that does not have device drivers and other components of a regular virtual machine.
Workload scheduling and orchestration techniques did not originate with Kubernetes. Though, it did introduce an innovative concept that effectively empowers inter-process communication and scalability and ease of implementation, that Docker did not achieve with its technical approach.
“Kubernetes is the platform and should never take an opinionated
position about which monitoring solution you use.”
The Kubernetes building blocks set collectively provides mechanisms for effectively deploying, maintaining, and scaling software applications. Kubernetes components are designed to be loosely-coupled and extensible to meet a wide array of dissimilar workloads. The extensibility capability is supported in large part by the Kubernetes API, used by internal components, extensions, and containers.
“I could either watch it happen or be a part of it.”
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 Capabilities
The primary value of deploying and using Kubernetes is that it provides organization the platform and capabilities to schedule and run containers on clusters of physical or virtual machines. Kubernetes is all about systemizing operational activities, so many of the same capabilities included with other application platforms and management systems can also be used specifically with containers.
The capabilities 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 orchestration is a critical component of a cloud-native strategy.
K8s has quickly dominated developer mindshare and adoption.
The vibrant K8s ecosystem is growing and changing quickly.
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.
- Faster software delivery.
- Higher resiliency.
- 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.
“Everything is going to be connected to cloud and data… All of this will be mediated by software.”
Kubernetes User Experience Survey
The New Stack 2017 Kubernetes User Experience Survey:
“ What types of workloads does your enterprise or organization run on Kubernetes?”
Kubernetes: Early Adopters & Users
A partial list of well-known brand businesses that were early Kubernetes adopters include:
- Goldman Sachs
- New York Times
- Samsung SDS