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

Search around

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

Demo