You are on page 1of 11

Look Back to Look Ahead

• Kubernetes : Greek for “Governor”, “Helmsman” or “Captain”


• Influenced from Google’s ‘Borg’ system
• Originally codenamed ‘Project Seven of Nine’, a Star Trek reference
(‘friendlier’ Borg)
• Written in Go and first release in 2015
• Open-source and managed by CNCF

•https://softwareengineeringdaily.com/2016/07/20/kubernetes-origins-with-craig-mcluckie
To learn more about Kubernetes story, check out the below
/
WHY Containers
• Software Application Development Evolution
• Monolithic > Micro services
• Deployment evolution
• Physical Servers > Virtualization > Containerization
• Challenges
• Software development involving multiple stacks :
• Different OS compatibilities
• Different technologies have dependencies on different versions
• Uneven resources usage/demand
• Scalability
• Downtime/Availability
• But it works on my machine
Containers vs VMs ►Isolation
►Shared OS
►Less resources
required
Containers
• Packaging mechanism for applications where applications are abstracted
away from the environments they run on
• It’s all about containers
• Container as standardized unit
• Lightweight – virtualization on OS level, less resources required
• Secure – isolation
• Open – based on Linux Kernel features
• Scalable(up-down), portable
• Application + dependencies
• Share kernel with other containers
• Run as isolated process in userspace of host OS
• Best practice: start only one process inside of a container
• Single Responsibility Principle
WHY Kubernetes

• In production, containers can run into thousands


• Containers have unpredictable life span
• Containers need to be deployed, managed, connected and updated
WHAT is Kubernetes (k8s)

• Open-source cluster and container orchestration platform


• A collection of nodes that is managed by a single Kubernetes instance is
referred to as a Kubernetes cluster
• Kubernetes allows us to automate
• container provisioning,
• networking,
• load-balancing,
• security and
• scaling across multiple nodes from a single command line or dashboard.
Features
• Kubernetes facilitates
• Automatic binpacking
• Monitoring and self-healing (ReplicaSet)
• Declarative desired state configuration
• Automatic rollbacks and rollouts (Canary Deployment)
• Auto-scaling up and down
• Load Balancing & Service Discovery
• Connecting containers to a variety of external data sources
• Vendor Agnostic
• Optimal Resource Utilization and reduced cost
• Can be accessed by CLI and UI dashboard
Architecture and Kubernetes Objects
• Master Node Components (usually 1)
• API Server
• ETCD
• Scheduler
• Controller
• Worker Node (usually multiple)
• Kubelet
• Kube Proxy
• Pod
• Container run-time
• ETCD (Distributed key-value store)
• Replica Sets / Replica Controller
• Volumes (Directories / Persistence)
• Service (Logical set of Pods)
• Assigns a single IP and DNS name to access pods.
• Load Balancing
How Kubernetes Works
Dashboard

You might also like