Upload
meyouslide
View
64
Download
3
Embed Size (px)
Citation preview
Introduction to Kubernetes
Marcin Wielgus
DRAFT
A little bit of history ...
Slide title here
• Text
image: public domain
gs://kubernetes-release
image: public domain
What does it look now?
Slide title here
• Text
Slide title here
• Text
image: public domain
Slide title here
• Text
image: public domain
Ships
• Ship loading is complicated.
• It can be really time consuming to load and unload a ship, especially with multiple types of goods.
Ships
• Having containers makes loading and unloading much easier and efficient.
• To effectively use containers you need a proper infrastructure.
Slide title here
• Text
Kubernetes
Greek for “Helmsman”; also the root of the words “governor” and “cybernetic”
• Manages container clusters
• Inspired and informed by Google’s experiences and internal systems
• cloud and bare-metal environments
• container runtimes
• 100% Open source, written in Go
Manage applications, not machines
Let’s build something!
Gossip Site
Slide title here
• Text
image: pudelek.pl
What do we need?
• Front-end web servers to show the show the pages.
• Backend servers to perform “business logic”
• Web servers to provide images.• Database with gossips and
discussion boards.• Load Balancer.
Containers and Pods
Web Server
File Puller
Volume10.5.8.123
Pod - a set of container that are run together on the same machine and share volumes, ip address and can communicate via localhost.
Requirements
Container:• CPU, Memory• Volumes• Ports
Pod:• Node preferences• Affinity• Anti-affinity
Scheduling & Controlling
Slide title here
• Text
image: public domain
Kubernetes Architecture
ETCD ApiServer
Scheduler
Controller Manager
Kubelet
SchedulerScheduler
User’s Pod
Kubelet
SchedulerScheduler
User’s Pod
Kubelet
SchedulerScheduler
User Pod
Master NodeWorker node
User requests
Replica Set
Replica Set controller makes sure that there is always the desired number of copies up
Web Serverr
File Puller
Web Serverr
File PullerWeb Server
File Puller
Deployment
Deployment takes care of different versions and rolling updates.
Web Serverr
File Puller
Web Serverr
File PullerWeb Server
File Puller
Web Serverr
File Puller
Web Serverr
File PullerWeb Server
File Puller
Update
Version 1.5Version 1.4
Services
Services make binding set of pods easily.
BackendBackend
Backend
backend.k8s10.5.210.220
BackendBackend
Backend
FrontendFrontend
FrontendFrontend
FrontendFrontend
Ingress
frontend.k8s10.5.210.220
BackendBackend
Frontend
fimages.k8s10.5.211.205
BackendBackend
Images
Load Balancer
gossip.ru/main/*
gossip.ru/images/*
Monitoring and Logging
• Container-level health checks.• Bundled with basic monitoring and
logging solution • Integration with:
• Datadog• ElasticSearch• Influxdb• Prometheus• Splunk• Stackdriver• Sysdig
Autoscaling
Adjusting:• Number of POD to CPU load or
custom metric.• Pod/container declared
requirements to the actual usage.• Number of nodes so that all pods
have place to live and the nodes are well utilized.
What else is in?
State of the Project
~45k Commits ~1100 UniqueContributors
Top 0.001% of all Github Projects
Contributors
Users
Kubernetes
• Text