69 lines
2.1 KiB
Markdown
69 lines
2.1 KiB
Markdown
---
|
||
id: mat-01-kubernetes-primer
|
||
title: "Kubernetes Primer"
|
||
---
|
||
|
||
# Kubernetes primer
|
||
|
||
## Kubernetes background
|
||
Kubernetes is an application orchestrator that helps you:
|
||
- deploy applications
|
||
- scale them up/down based on demand
|
||
- self-heal when things break
|
||
- do rolling updates and rollbacks
|
||
- and more
|
||
|
||
## Cloud-native and microservice apps
|
||
A cloud-native app typically demands:
|
||
- auto-scaling
|
||
- self-healing
|
||
- rolling updates
|
||
- rollbacks
|
||
|
||
A microservices app typically demands:
|
||
- lots of small, specialized, independent parts that work together
|
||
- e.g., front-end, back-end, database, many services in a mesh
|
||
|
||
## Where Kubernetes comes from
|
||
- Early public cloud era: AWS popularized modern cloud computing
|
||
- Google already ran large containerized apps (e.g., Search/Gmail) and developed in-house orchestration systems (Borg, Omega)
|
||
- Kubernetes was created from those lessons and donated to the CNCF in 2014 as an open-source project
|
||
|
||
## Kubernetes and Docker (historical view)
|
||
At first:
|
||
- Docker build tools packaged apps as containers
|
||
- Kubernetes made scheduling/orchestration decisions
|
||
- Docker runtime was installed on each worker node
|
||
|
||
Now:
|
||
- Kubernetes uses a container runtime layer via CRI (Container Runtime Interface)
|
||
|
||
## What’s in the name (K8s)
|
||
- “Kubernetes” is often shortened to “K8s” (“kates”)
|
||
- “Kubernetes” comes from Greek meaning “helmsman” (the person who steers a ship)
|
||
|
||
## Kubernetes from 40K feet (cluster view)
|
||
A Kubernetes cluster runs applications on:
|
||
- control plane nodes
|
||
- worker nodes
|
||
|
||
## Control plane
|
||
The control plane is a collection of services that control and run everything.
|
||
Common services:
|
||
- API Server
|
||
- cluster store (etcd)
|
||
- controller manager (reconciles desired vs current state)
|
||
- scheduler
|
||
|
||
## Worker nodes
|
||
Worker nodes are where user applications run.
|
||
Worker node work logic:
|
||
- watch the API server for work assignments
|
||
- execute work assignments
|
||
- report back to the API server
|
||
|
||
### Worker node components
|
||
- kubelet: main agent on every worker, executes tasks and reports
|
||
- container runtime: pulls images, starts/stops containers (via CRI; e.g., containerd)
|
||
- kube-proxy: local networking (routing, iptables, load balancing)
|