Intro to Kubernetes
Karl Bielefeldt
Agenda
- Why use Kubernetes?
- What is an orchestrator?
- Kubernetes compared to other orchestrators
- Picking a Kubernetes distribution
- Kubernetes concepts
- Demo
“Kubernetes is for when you need massive scale”
--Random “helpful” people on the Internet
- Rolling upgrades
- Health checks
- Capacity management
- a/b testing
- matching dev/test environments to production
- hardware failures and upgrades
- logging
- metrics
Orchestrators continuously monitor and reallocate resources to nodes based on health checks and constraints
Primary resources managed by orchestrators:
- Processes
- Docker containers
- Virtual Machines
Primary resources managed by orchestrators:
Processes
- Docker containers (and rkt and windows server)
Virtual Machines
Secondary resources managed by orchestrators:
- Secrets
- Service Discovery
- Storage
- Networking
- Logging
- Access Control
- Configuration
What makes Kubernetes unique?
- Highly configurable
- Master-node architecture
- Many tailored workload types
- One IP address per pod
- Very rapidly moving
- Different knowledge needed for development, operation, and administration
- Distributions
Kubernetes Distributions
https://kubernetes.io/docs/setup/pick-right-solution/
- Local machine
- Hosted
- Turnkey Cloud
- Custom
- Universal (kubeadm)
- Cloud
- On-Premises VMs
- Bare Metal
- Integrations
Pods
- Fundamental unit of Kubernetes
- Group of tightly-coupled containers scheduled together on same node
- Most often a single container
- Unique IP address
- Shared storage
- Almost never created directly by the operator
Controllers
- Replication Controllers
- Replica Sets
- Deployments
- Stateful Sets
- Daemon Sets
- Jobs
- Cron Jobs
Services
- ClusterIP
- NodePort
- LoadBalancer
- ExternalName
Volumes
- Volumes
- Persistent Volumes
- Persistent Volume Claims