forked from kubernetes/kubernetes
-
Notifications
You must be signed in to change notification settings - Fork 2
Why Kubernetes?
bgrant0607 edited this page Jan 16, 2015
·
4 revisions
Kubernetes is a system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.
Kubernetes is:
- lean: lightweight, simple, accessible
- portable: public, private, hybrid, multi cloud
- extensible: modular, pluggable, hookable, composable, toolable
- self-healing: auto-placement, auto-restart, auto-replication
Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale, combined with best-of-breed ideas and practices from the community.
- application-centric management: raising the level of abstraction from running an OS on virtual hardware to running an application on an OS using logical resources delivers the simplicity of PaaS with flexibility of IaaS
- Dev and Ops separation of concerns: separation of build and deployment decouples applications from infrastructure
- agile application creation and deployment: it's easier and faster to create a container image to run your app than a VM image
- continuous development, integration, and deployment: build and deploy application images many times a day, with fast and easy rollbacks
- loosely coupled, distributed, elastic, liberated micro-services: break apps into smaller pieces that can be deployed and managed independently and dynamically -- not a fat monolithic stack running on one big single-purpose machine
- environmental consistency across development, testing, and production: runs the same on the laptop and in the cloud
- cloud and OS distribution portability: run on Ubuntu or RHEL, on prem or GCE; makes sense for build and test environments as well as for deployment
- resource isolation: predictable application performance
- resource utilization: high efficiency and density