Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetes Demystified
Search
Wojtek Siudzinski
May 15, 2018
Programming
0
17
Kubernetes Demystified
“When you look into it, Kubernetes isn’t that complicated after all”
Wojtek Siudzinski
May 15, 2018
Tweet
Share
More Decks by Wojtek Siudzinski
See All by Wojtek Siudzinski
Strategic and tactical time management
suda
0
35
React/Flux like pattern for embedded UI
suda
0
130
Swagger Driven Development
suda
0
37
Building great CLIs with Node.js
suda
0
54
Projects more accessible for the new contributors
suda
0
35
From Prototype to Production with Particle
suda
0
84
Ember London Show & Tell: Particle
suda
0
23
Building products with Particle
suda
0
21
Leave Coffee Alone!
suda
0
100
Other Decks in Programming
See All in Programming
Sheets API使ってみた
toshi0383
2
180
Try creating your own orderedmap
kazamori
1
280
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
1
120
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.9k
Implementing Design Systems in Swift
seyfoyun
2
530
Powerfully Typed TypeScript
euxn23
3
1.5k
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
510
TypeScriptの型とパフォーマンス (TSKaigi 2024)
ypresto
14
4.4k
Embedding it into Ruby code
soutaro
1
290
Webアプリをできるだけコードを手書きしないで作ってみる
tomokusaba
2
230
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
17
2.3k
Amazon Aurora Serverless v2が意外と高かった話と、AWS Database Migration Serviceの話
satoshi256kbyte
1
110
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
59
7k
The Cost Of JavaScript in 2023
addyosmani
21
4k
A Philosophy of Restraint
colly
197
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
GitHub's CSS Performance
jonrohan
1025
450k
How GitHub (no longer) Works
holman
305
140k
A better future with KSS
kneath
231
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
The Brand Is Dead. Long Live the Brand.
mthomps
49
30k
Web development in the modern age
philhawksworth
203
10k
Transcript
“WHEN YOU LOOK INTO IT, KUBERNETES ISN’T THAT COMPLICATED AFTER
ALL” WYLIIKITCAA
WHAT IS KUBERNETES? CLUSTER STATE STORE (AND MANAGER)
WHAT IS KUBERNETES? DESIRED STATE CLUSTER
WHAT IS KUBERNETES? “I NEED A CONTAINER RUNNING NGINX” Pick
feasible nodes Update their desired state Get the current state
WHAT IS KUBERNETES? “I NEED A CONTAINER RUNNING NGINX” Pick
feasible nodes Update their desired state Get the current state
HOW DO I SET THE DESIRED STATE? apiVersion: v1 kind:
Pod metadata: name: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80
HOW DO I SET THE DESIRED STATE? $ kubectl create
-f pod-nginx.yaml
WHAT IS KUBERNETES? “I NEED A CONTAINER RUNNING NGINX” Pick
feasible nodes Update their desired state Get the current state
HOW DOES KUBERNETES SELECT THE FEASIBLE NODES? CONTROLLERS
DEPLOYMENT STATEFUL SET DAEMON SET WORKLOAD CONTROLLERS
DEPLOYMENT Declarative updates Rolling back Scaling Creates ReplicaSets WORKLOAD CONTROLLERS
STATEFUL SET Guaranteed order and uniqueness Persistant storage Stable, unique
network identifiers WORKLOAD CONTROLLERS
DAEMON SET Running on all nodes WORKLOAD CONTROLLERS
LABELS
AFFINITY TAINT Node selectors Required/preferred Conditions Eviction TAINT AND AFFINITY
WHAT IS KUBERNETES? “I NEED A CONTAINER RUNNING NGINX” Pick
feasible nodes Update their desired state Get the current state
THE DESIRED STATE
ETCD Distributed key/value store Like a directory tree (/etc) JSON/REST
API Uses a Discovery URL Needs at least 3 nodes for consensus
WHAT IS KUBERNETES? “I NEED A CONTAINER RUNNING NGINX” Pick
feasible nodes Update their desired state Get the current state
KUBELET
None
WHAT IS KUBERNETES? “I NEED A CONTAINER RUNNING NGINX” Pick
feasible nodes Update their desired state Get the current state
None