<aside>
💡 Notion Tip: When creating a page, it's important to give it a clear title and provide some content. This could include verifying the information, summarizing the topic, or sharing your thoughts and opinions on something that matters to you.
</aside>
Overview
Kubernetes is a portable, extensible, open source platform for managing containerised worklaods and services that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem.

Traditional Deployment Era → Organisations ran applications on physical servers. No way to define resource boundaries for applicaitons in a physical server, this caused resource allocation issues. Different applications could be run on different physical servers, but this did not scale, resources were underutilised.
Virtualised Deployment Era → As a solution, virtualisation was introduced. could run multiple VMs on a single physical server’s CPU. Allows vetter utilisation of resources in a physical server and allows better scalability because an app can be added or updated easily. Each VM is a full machine running all the components, including its own operating system, on top of virtualised hardware.
Container Deployment Era → Have relaxed isolation properties to share the OS. Containers are considered lightweight. They are decoupled from underlying infrastructure, they are portable across clouds and OS distributions.
Container Benefits
- Agile application creation and deployment: increased ease and efficiency of container image creation compared to VM image use.
- Continuous development, integration, and deployment: provides for reliable and frequent container image build and deployment with quick and efficient rollbacks (due to image immutability).
- Dev and Ops separation of concerns: create application container images at build/release time rather than deployment time, thereby decoupling applications from infrastructure.
- Observability: not only surfaces OS-level information and metrics, but also application health and other signals.
- Environmental consistency across development, testing, and production: runs the same on a laptop as it does in the cloud.
- Cloud and OS distribution portability: runs on Ubuntu, RHEL, CoreOS, on-premises, on major public clouds, and anywhere else.
- Application-centric management: raises the level of abstraction from running an OS on virtual hardware to running an application on an OS using logical resources.
- Loosely coupled, distributed, elastic, liberated micro-services: applications are broken into smaller, independent pieces and can be deployed and managed dynamically – not a monolithic stack running on one big single-purpose machine.
- Resource isolation: predictable application performance.
- Resource utilization: high efficiency and density.
What Kubernetes Can Do