-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
247 lines (198 loc) · 7.15 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' />
<title>Big</title>
<link href='big.css' rel='stylesheet' type='text/css' />
<link href='highlight.css' rel='stylesheet' type='text/css' />
<link href="animate.min.css" rel='stylesheet' type="text/css">
<link href="style.css" rel="stylesheet" type="text/css">
<script src='big.js'></script>
<script src='highlight.js'></script>
<script>
hljs.initHighlightingOnLoad();
</script>
<title>KUBERNETES - The Easy Way</title>
</head>
<body class='light'>
<div>
<img src="./img/kubernetes_logo_full.svg" alt=""> <br>
<i class="nobreak">The Easy Way</i> </div>
</div>
<div>
<div class="nobreak">KUBER... what?</div> <br>
<div class="nobreak">K[UBERNETE]S = k8s = helmsman = timonier 🛳️</div> <br>
<img src="./img/kubernetes_logo_border.svg" alt="" style="width: 100px; height: auto;" class="float-center">
</div>
<div>
<h3 class="align-center">Production-Grade Container Orchestration</h3>
<ul>
<li>Projekt i realizuar nga Google ne 2014</li>
<li>I bazuar ne eksperiencat e Borg dhe Omega</li>
<li>I projektuar si nje nderthurje <em>loosely coupled</em> e shume komponenteve te specializuar ne levrimin,
mirembajtjen dhe shkallezimin e workloads</li>
</ul>
</div>
<div>
<div>Abstracts away underlaying hardware</div> <br>
<div class="animated hinge delay-4s float-left">Nodes</div>
<div class="animated jackInTheBox delay-5s float float-right">Shared Pool</div>
<notes>
Shpjego qe ska me standalone servers po nje resource pool
</notes>
</div>
<div style="display: grid; grid-template-columns: auto auto;">
<div class="align-left">Pets (every operation is <em>customized</em> with care and love for the individual app)
</div>
<div class="align-right">Manage your applications like Cattle (<em>generic, bulk operations</em>)</div>
</div>
<div>
<div>Decouples Infra and Scaling</div>
<ul>
<li> <em>All Services</em> are natively Load Balanced </li>
<li>Scale Up and Down dinamically</li>
<li>Self-Healing and seamless update and rollback</li>
</ul>
</div>
<div>You (the admin) declares the
<em>desired states</em>, Kubernetes' main task is to make the
<em>desired state the actual state</em>.
<notes>
jep nje shembull per self healing, kur kerkon 3 instanca te dickaje gjithmone do te jene 3.
shpjego rreth deplyments
</notes>
</div>
<div>Key Concepts</div>
<div>
<div>Pods</div>
<ul>
<li>Elementi baze i k8s</li>
<li><em>Nje/Shume</em> containers qe share volumes, network namespace</li>
<li> <em>Ephemeral = Vdekshem</em> </li>
</ul>
<notes>
fun fact: pod eshte grumbullim balenash. trego me shume se cfare share
</notes>
</div>
<div>
<img src="./img/pod.png" alt="" style="width: auto; height: 900px;">
<notes>
shpjego rreth deployments qe jane shume pods qe komunikojne bashke. trego deployments strats
</notes>
</div>
<div>
<div>Services</div>
<ul>
<li>Metoda per te ndervepruar me Pods</li>
<li>Resource jetegjate</li>
<ul>
<li>Static Cluster IP</li>
<li>DNS name</li>
</ul>
<li><em>Jo Ephemeral = Pavdekshem</em></li>
</ul>
</div>
<div>
<img src="./img/svc.png" alt="" style="width: auto; height: 900px;">
<notes>shpjego rreth labels dhe si nderveprojne me services</notes>
</div>
<div>Sample Worklfow</div>
<div>cluster<img src="./img/1-cluster.svg" alt="" style="width: auto; height: 900px;"></div>
<div>app<img src="./img/2-app.svg" alt="" style="width: auto; height: 900px;"></div>
<div>pods<img src="./img/3-pods.svg" alt="" style="width: auto; height: 600px;"></div>
<div>nodes<img src="./img/4-nodes.svg" alt="" style="width: auto; height: 900px;"></div>
<div>svc<img src="./img/5-svc.svg" alt="" style="width: auto; height: 900px;"></div>
<div>labels<img src="./img/6-labels.svg" alt="" style="width: auto; height: 900px;"></div>
<div>scale-1<img src="./img/7-scaling-1.svg" alt="" style="width: auto; height: 900px;"></div>
<div>scale-2<img src="./img/8-scaling-2.svg" alt="" style="width: auto; height: 900px;"></div>
<div>upd-1<img src="./img/9-rollingupdate-1.svg" alt="" style="width: auto; height: 900px;"></div>
<div>upd-2<img src="./img/10-rollingupdate-2.svg" alt="" style="width: auto; height: 900px;"></div>
<div>upd-3<img src="./img/11-rollingupdate-3.svg" alt="" style="width: auto; height: 900px;"></div>
<div>upd-4<img src="./img/12-rollingupdate-4.svg" alt="" style="width: auto; height: 900px;"></div>
<div>
<h1 class="nobreak">Architecture Overview</h1> <br>
<img src="./img/architecture.png" alt="" style="width: auto; height: 700px;">
<notes>
shpjego diagramen dhe trego cdo komponenet. mos harro reconcillation loop
</notes>
</div>
<div>
<h2>Control Plane Componenets</h2>
<ul>
<li>kube-apiserver</li>
<li>etcd</li>
<li>kube-controller-manager</li>
<li>kube-scheduler</li>
</ul>
</div>
<div><img src="./img/control-plane-components.png" alt=""></div>
<div>
<h2>kube-apiserver</h2>
<ul>
<li>Forward facing REST interface</li>
<li>Interact with k8s <em>strictly</em> through API server </li>
<li>Cluster Gatekeeper - handle auth, req validation, etc</li>
</ul>
</div>
<div>
<img src="./img/etcd-logo.svg" alt="" style="width: auto; height: 200px;">
<ul>
<li>cluster datastore</li>
<li>key-value store for persisting cluster state</li>
<li>Store object and config info</li>
</ul>
</div>
<div>
<h2>kube-controller-manager</h2>
<ul>
<li> <i>Director behind the scenes</i> </li>
<li>Monitors the cluster statevia apiserver and <em>steers the cluster towards the desired state</em> </li>
<li>Manages all core componenets control loops</li>
</ul>
<notes>doest not schedule dhe pods, just monitors the state. scheduler does that</notes>
</div>
<div>
<h2>kube-scheduler</h2>
<ul>
<li>evaluates workload requirements</li>
<li>req. can include: hardware, affinity/anti-affinity, labels, etc</li>
</ul>
</div>
<div>
<h2>Node Componenets</h2>
<ul>
<li>kubelet</li>
<li>kube-proxy</li>
<li>container runtime engine</li>
</ul>
</div>
<div><img src="./img/node-components.png" alt=""></div>
<div>
<h2>kube-proxy</h2>
<ul>
<li> <em>not a proxy</em> </li>
<li>manages network on each node</li>
<li>performs connection forwarding or load balancing</li>
</ul>
</div>
<div>
<h2>container runtime engine</h2>
<ul>
<li>container runtime interface that executes and manages containers
<ul>
<li>containerd(docker)</li>
<li>cri-o</li>
<li>rkt(coreos)</li>
<li>docker</li>
<li>frakti</li>
</ul>
</li>
</ul>
</div>
<div>
<h2>Cluster Overview</h2>
<img src="./img/k8s-cluser-overview.png" alt="" style="width: auto; height: 700px;">
</div>
</body>
</html>