https:/.../35c3-wikipakawg-17-deu-Einfuehrung_in_Kubernetes_Deployments_fuer_Codefor_Labs_hd.mp4
-
0:00 - 0:1835C3 Vorspannmusik
-
0:18 - 0:24Herald: Hallo, hallo! Okay, unser nächster
Speaker hier ist der Tobias von "Code for -
0:24 - 0:31Münster" und hat das Thema Kubernetes
Development oder so – und ich habe keine -
0:31 - 0:34Ahnung, was das ist und er konnte es mir so
schnell auch nicht wirklich verständlich -
0:34 - 0:38erklären, aber er wird das jetzt für
euch sicher ausführlich machen. Also ein -
0:38 - 0:41kleiner Applaus für Tobias bitte.
Applause -
0:41 - 0:47Tobias: Vielen Dank! Ja, also ich werde
jetzt in ein paar Minuten mal versuchen -
0:47 - 0:52Kubernetes so ein bisschen die
Architektur zu erklären und warum ich -
0:52 - 0:58glaube, dass das ein ganz gute Plattform
ist um eben in "Code-for-Labs" seine Apps zu -
0:58 - 1:04deployen und dann auch weiter maintainen
zu können. Wer von euch weiß ungefähr, was -
1:04 - 1:11Kubernetes ist? Ja top! Und kennt ihr auch
alle schon Docker und Container- -
1:11 - 1:16Technologie? Also grundsätzlich, wenn
irgendwelche fragen sind, haut die einfach -
1:16 - 1:20zwischendurch raus. Wir können hier auch
so ein bisschen, einfach so, Frage-und-Antwort -
1:20 - 1:28machen. Ansonsten fange ich einfach mal so
an. In Münster treffen wir uns regelmäßig, -
1:28 - 1:35seit drei Jahren mittlerweile, unter dem
Topic "Code for Münster" und ich glaube seit -
1:35 - 1:39zwei Jahren haben wir auch schon ein
Kubernetes-Cluster laufen. Ich selber mache -
1:39 - 1:46auch beruflich einiges damit, also auch
deswegen habe ich da eigentlich Spaß dran -
1:46 - 1:50und mittlerweile, bei uns in Münster, sind
glaube ich auch schon so drei Leute, die -
1:50 - 1:55theoretisch Kubernetes betreuen könnten
und grundsätzlich jeder der neu irgendwie -
1:55 - 2:02dazu kommt, kommt nicht darum, irgendwie
Docker kennen zu lernen, aber hat auch -
2:02 - 2:09durchaus viele Vorteile und ich hoffe die
kriege ich jetzt rüber gebracht. Wir können -
2:09 - 2:14mit dem spaßigsten Teil beginnen, da
versuche ich was zu zeichnen. Wenn das -
2:14 - 2:18jetzt irgendwie gar nicht klappt, dann habe ich
die Zeichnung von gestern aus dem Zug noch, -
2:18 - 2:23die ich Ihnen zeigen könnte. Grundsätzlich
zur Architektur von Kubernetes: Es gibt -
2:23 - 2:32da drei Grundprinzipien. Das eine ist das
alles, was man gegen die Kubernetes-API -
2:32 - 2:37schicken möchte, also alles was nachher im
Cluster laufen soll, das definiert man -
2:37 - 2:44vorher in einer Datei, in einem Manifest. Das ist
klassischerweise in YAML, kann auch JSON -
2:44 - 2:47sein, aber es ist einfach ein
strukturiertes Format. Ich kann mal kurz -
2:47 - 2:56ein Beispiel, glaube ich, auch zeigen. Hier,
das sind alle unsere Sachen, die wir bei -
2:56 - 3:06uns im Cluster laufen lassen und eine
Beispiel-App hier. Da haben wir halt einige -
3:06 - 3:11Dateien. Die wichtigste ist diese hier, das
sieht am Anfang ein bisschen wild aus, -
3:11 - 3:16im Endeffekt, wenn man Docker kennt und
Containerisierung, ist das die Zeile. Man -
3:16 - 3:22sagt dieses Image soll ausgeführt werden
und kann dazu noch ein paar Dinge angeben -
3:22 - 3:26und dann gibt es noch so weitere
Abstraktions-Geschichten, wie Service und -
3:26 - 3:30Ingress, erzähl ich gleich auch noch was
dazu. -
3:30 - 3:35Am Anfang mag das alles ein
bisschen viel sein, hat aber den Vorteil, -
3:35 - 3:40dass eben egal auf welchem Cloud-Provider
man läuft oder ob man selber Server -
3:40 - 3:47betreibt, man quasi nur diese Kubernetes-
Abstraktionsschicht braucht und man -
3:47 - 3:55sich gegenseitig aushelfen kann, gerade
speziell in diese "Code-For-Labs". Also -
3:55 - 4:01diese Manifeste kann die Kubernetes-API
verstehen. Das heißt, am Anfang haben wir -
4:01 - 4:15hier - ach so - unsere YAML-Dateien und dann
die Kubernetes-API, die läuft auf einem -
4:15 - 4:27Server. Das Ganze ist dann die Control
Plane von Kubernetes, quasi das ist das -
4:27 - 4:32Herzstück und alles was wir machen, über
die Kommandozeile oder Ähnliches, geht über -
4:32 - 4:39den API-Server. Der API-Server hat dann
noch eine Datenbank im Hintergrund, weil er -
4:39 - 4:45selbst einfach nicht viel macht. Der nimmt
einfach nur die Manifeste entgegen, legt die in -
4:45 - 4:52der Datenbank ab und verteilt die dann
eventuell an Controller, die es dann noch -
4:52 - 4:58gibt und davon kann's dann mehrere geben.
Also an sich, die Struktur, serverseitig, ist -
4:58 - 5:07relativ simpel. Dann hat man noch weitere
Server, die nennen wir einfach nur "Nodes", -
5:07 - 5:15und jeder von diesen Servern hat eine
Software laufen, nennt sich "Cubelet", und der -
5:15 - 5:26API-Server unterhält sich mit denen dann
in erster Linie und, ja, das ist im Grunde -
5:26 - 5:29die Grundstruktur. Auf all diesen Nodes
läuft dann Docker oder eine andere -
5:29 - 5:37Containerisierungsform und die Idee, das
Besondere jetzt oder ein weiterer -
5:37 - 5:40Architekturpunkt von Kubernetes ist, dass
er ständig vergleicht: Was möchten wir -
5:40 - 5:47eigentlich, dass auf dem Cluster läuft –
das sind eben unsere YAML Manifeste – -
5:47 - 5:52und über die Cubelets kann er eben erfragen:
Was läuft wirklich? Also sobald es eine -
5:52 - 5:58Differenz gibt, kann er hingehen und
versuchen, das irgendwie auszugleichen. Also -
5:58 - 6:03wenn irgendeine App abgestürzt ist oder zu
viel Speicher gebraucht hat oder ist -
6:03 - 6:07Netzwerkprobleme gab, dann kriegt er das
mit. Das ist eventuell -
6:07 - 6:12ein Unterschied gegenüber einem Setup, wo
man selber Docker-Container startet oder -
6:12 - 6:28über "Docker Compose" oder Ähnliches. Gibt's so
weit schon mal Fragen? Sonst ist das im -
6:28 - 6:32Grunde das Wichtigste, was so Kubernetes
angeht. Und es soll jetzt ja auch nicht -
6:32 - 6:38jeder in den Code-for-Labs komplett das
Bedienen von Kubernetes -
6:38 - 6:44beherrschen müssen. Das ist bei uns in
Münster auch nicht der Fall, aber trotzdem -
6:44 - 6:48hilft es, dass man mit mehreren Leuten
gemeinsam Dinge auf dem Cluster spielt -
6:48 - 6:59oder auf Servern laufen lässt. Diese YAML-
Manifeste kann man nämlich sehr gut -
6:59 - 7:05einfach alle in einem Git-Repo liegen
haben. Diese YAML-Manifeste schickt man -
7:05 - 7:11gegen die Kubernetes-API, indem man auf
der Kommandozeile "cubecontrol apply" ausführt, -
7:11 - 7:15kann man rekursiv machen über ganze
Verzeichnisse. Und hier bei uns in Münster -
7:15 - 7:21habt ihr eben schon gesehen, das sind quasi
die Verzeichnisse mit allen Apps, die wir -
7:21 - 7:28drauf laufen lassen haben und – halt alle
Änderungen, die am Server, einem Cluster, -
7:28 - 7:33geschehen sollen, laufen über dieses Repo.
Also das heißt: Die Leute stellen Pull- -
7:33 - 7:39Requests, wenn eine neue App rein soll oder
wenn irgendwelche Konfigurationen geändert -
7:39 - 7:43werden oder neue Versionen ausgerollt
werden soll – und andere können drüber -
7:43 - 7:53schauen, ob das okay ist und das Ganze dann
committen, mergen und dann kann man es -
7:53 - 7:58gegen den Cluster spielen. Das heißt, es
ist nicht so, dass irgendjemand mit SSH auf -
7:58 - 8:03Maschinen draufgeht und da dann
irgendwelche Details konfiguriert und man -
8:03 - 8:07hat nachher mehrere Server und
typischerweise weiß keiner so genau wie -
8:07 - 8:15wichtig welche Konfigurationseinstellung
ist oder irgendwelche Sicherheitspatches -
8:15 - 8:20jetzt schon drauf sind oder eben nicht. In
diesem Kubernetes-Setup können wir -
8:20 - 8:25theoretisch auch hingehen und den ganzen
Cluster wegschmeißen, neue Server -
8:25 - 8:30aufsetzen und alles gegen den Server
spielen und die Sachen kämen dann wieder -
8:30 - 8:35hoch. Abgesehen von dem Kram, den man in den
Datenbanken oder auf dem Filesystem hat, da -
8:35 - 8:39muss man sich dann eben um die Backups
kümmern, aber theoretisch ist es ein -
8:39 - 8:49relativ klar strukturierter Ansatz, also
man hat gut einsehbar, was auf dem Cluster -
8:49 - 8:54laufen soll und Kubernetes sorgt dann dafür,
dass es auch der Fall ist. Man hat einige -
8:54 - 9:00Abstraktionsmöglichkeiten, wenn es um die
Domainverwaltung geht oder Let's Encrypt, -
9:00 - 9:06zeig ich gleich kurz. Und man hat quasi
dann auch, wenn man sich dieses Repo -
9:06 - 9:13anschaut, dann so ein Audit Log. Also man
weiß, was passiert ist, wer wann was gemacht hat, -
9:13 - 9:19sodass man durchaus mit mehreren Leuten
gemeinsam so ein Cluster betreiben kann -
9:19 - 9:23und solange ein paar Leute Kubernetes
verstehen, können die halt aushelfen und es -
9:23 - 9:33ist nicht irgendwie eine Person, die nur Zugang
hat und an der dann alles hängt. Also ein -
9:33 - 9:43Beispiel ist die unsere "Traffics Shiny App".
Da kam einer zu uns, der gut R konnte, hatte -
9:43 - 9:47aber noch keine Idee von Docker und meinte,
bei ihnen an der Uni gehen sie auch -
9:47 - 9:52einfach per SSH auf die Maschinen und
starten da irgendwas und – Aber da -
9:52 - 9:58wir das halt gar nicht mehr machen, haben
wir ihm soweit Docker beigebracht – oder es -
9:58 - 10:02hat ihn auch interessiert und im Endeffekt,
wenn er an seiner App halt was Neues -
10:02 - 10:08gebastelt hat, dann kann er auf GitHub
hingehen und ein neues Release erzeugen, als -
10:08 - 10:16ein Beispiel für eine sehr einfache Pipeline.
Und das würde dann automatisch einen neuen -
10:16 - 10:28Build anstoßen, auf dem Docker-Hub. Und dann
läuft auf dem Cluster ein Tool von der -
10:28 - 10:34Firma "weaveworks", das einfach im Cluster
sitzt und die ganze Zeit auf dem Docker-Hub -
10:34 - 10:39schaut, ob neue Images da sind. Und
sobald er eine neue Version findet, würde -
10:39 - 10:46er die auf den Cluster schieben. Also, da
muss man jetzt auch nicht unbedingt den -
10:46 - 10:51Docker-Hub nehmen, man kann auch Quay
nehmen, anstatt GitHub auch GitLab. GitLab hat -
10:51 - 10:56selber für Kubernetes, glaube ich, ein paar
Tools und Integrationen. Aber theoretisch -
10:56 - 11:02können halt Leute, die auch eben gar keine
Lust haben an Server-Management, mit -
11:02 - 11:06relativ simplen Sachen ihre neue App basteln,
sagen neues Release und wenn sie ein -
11:06 - 11:16bisschen warten, ist die automatisch dann
auf dem Cluster in der neuen Version. Wenn -
11:16 - 11:21jetzt mehrere Leute gemeinsam auf dem
Cluster unterwegs sind, dann möchte man ja -
11:21 - 11:27trotzdem, auch wenn sie gegenseitig sich
freundlich gesinnt sind, ein bisschen -
11:27 - 11:35Isolation haben, sodass man ihnen die
– wenn eine App irgendwie Amok läuft, -
11:35 - 11:42dass das dann nicht alle anderen mit runter
reißt – und da bietet Kubernetes auch von -
11:42 - 11:49Haus aus eine Menge Sachen. Einmal kann man
nach Namespaces isolieren. Hier, das -
11:49 - 11:55wäre das Kommandozeilen-Tool "CubeControl".
Hier sieht man jetzt die Namespaces, die -
11:55 - 12:01laufen und die Apps kann man mehr oder
weniger gegeneinander über Namespaces -
12:01 - 12:05isolieren. Aber so könnte man neben meinem
Team oder eben auch einem Code-For-Lab in -
12:05 - 12:14die Namespace zuweisen und ihnen den
Zugriff auf anderen Namespaces verhindern. -
12:14 - 12:17Und was auch noch interessant ist: Man kann
dann nachher die Container, die man laufen -
12:17 - 12:23lässt, denen kann man jeweils zuweisen, wie
viel Speicher sie maximal benutzen dürfen -
12:23 - 12:27oder wie viel CPU und in Zukunft
wahrscheinlich auch noch ein paar mehr -
12:27 - 12:34Sachen. Das definiert man dann genauso in
den in den YAML-Manifesten. Deswegen sehen -
12:34 - 12:44die halt sehr komplex aus, weil man darüber
alles Mögliche nachher einrichten kann. Es -
12:44 - 12:52gibt dann – ja – also Kubernetes wird, alle
drei Monate gibt es ein neues Release und -
12:52 - 13:00da kommen eigentlich halt laufend neue
Features rein. Es wird von einer Foundation, -
13:00 - 13:10von der "Cloud Native Computing Foundation"
heißt sie glaube ich, soweit betreut und im -
13:10 - 13:14Hintergrund stehen halt alle möglichen
großen Firmen und auch viele kleine, von -
13:14 - 13:20RedHat, Microsoft, Amazon, Google
logischerweise und die gesamte Entwicklung -
13:20 - 13:26geschieht aber komplett offen, also man
kann alles auf GitHub – Kubernetes verfolgen -
13:26 - 13:30und es gibt so Special Interest Groups für
die verschiedenen Bereiche, eben auch bei -
13:30 - 13:36Netzwerk-Geschichten oder Rechte-
Geschichten, die machen auch teilweise -
13:36 - 13:40wöchentliche Treffen, wo man sich dann
irgendwie zuschalten kann über Hangout. Also das -
13:40 - 13:46ganze System ist halt sehr offen und die
Community ist sehr wichtig in dem ganzen -
13:46 - 13:53Entwicklungsprozess und laufend gibt es
halt weitere Features vor allem in Sachen -
13:53 - 14:02Sicherheit, ja, oder auch Dinge, die uns
das Leben einfacher machen. Zum Beispiel -
14:02 - 14:07gibt es eine Abstraktionsschicht, das nennt
sich Ingresses. Also wir haben unsere Apps -
14:07 - 14:13jetzt in Containern laufen auf dem
Cluster. Jetzt hätten wir gerne, dass wir -
14:13 - 14:18die von außen immer die Domain erreichen
können. Und da gibt es einfach ein Tool das -
14:18 - 14:27man installieren kann. Das nennt sich – das
ist im Endeffekt ein Proxy auf Basis von -
14:27 - 14:36NGINX, hier haben wir nur Text, wir können
mal kurz bei uns schauen, die werden auch -
14:36 - 14:41über die YAML-Manifeste
definiert und hier sehen wir jetzt die -
14:41 - 14:47verschiedenen Domains und die verweisen
jeweils dann quasi über einen -
14:47 - 14:52Zwischenschritt noch auf die Container, die
laufen. Das heißt, wir definieren, ich habe -
14:52 - 15:02glaube ich, wo hab ichs, wahrscheinlich hier –
Genau. Das sieht im Endeffekt so aus. Auch -
15:02 - 15:09wieder für diese "Traffics Shiny App", da
tragen wir ein: Das soll die Domain -
15:09 - 15:17sein, verweist auf Container, die unter dem
Namen laufen und außerdem hätten wir gerne -
15:17 - 15:24das automatisch Let's Encrypt eingerichtet
wird. Also derjenige, der diese App bastelt -
15:24 - 15:29und auf den Cluster schiebt, braucht sich
selbst darum auch nicht kümmern. Er muss -
15:29 - 15:33nur sagen, wie die Adresse heißen soll, dann
wird es angelegt, im Hintergrund "Let´s -
15:33 - 15:40Encrypt"-Zertifikate erzeugt – die werden
auch passend erneuert. Man muss es nur halt -
15:40 - 15:43einmal definieren, dass man das gerne haben
möchte und man muss noch ein Cert- -
15:43 - 15:49Manager im Cluster laufen lassen. Also im
Endeffekt: Dieser Ingres-Controller oder -
15:49 - 15:55die Cert-Manager, die laufen die ganze Zeit
im Hintergrund und gucken, ob eine neue -
15:55 - 16:01Ingress-Definition gegen die Kubernetes-
API geschickt wird. Und sobald sie das -
16:01 - 16:06sehen, konfigurieren sie NGINX neu, holen
sich die "Let's Encrypt"-Zertifikate, legen -
16:06 - 16:12die passend ab. Also alles Dinge, die man
sich im Detail anschauen kann, wenn man -
16:12 - 16:26möchte, aber eben nicht unbedingt muss.
Was natürlich auch ganz nett ist, wenn man -
16:26 - 16:33einmal Monitoring für den Cluster
eingerichtet hat – oder eben Logdateien, die -
16:33 - 16:37kann man alle zentral sich von all den
Containern holen, die über mehrere Server -
16:37 - 16:45verteilt laufen und dann zentral sich
anschauen. Also zu Monitoring wird oft -
16:45 - 16:52Prometheus im Hintergrund eingesetzt und
Graphana, und so kann man sich Dashboards -
16:52 - 16:56irgendwie basteln und jeweils dann auch für
eine bestimmte App oder für einen Namespace -
16:56 - 17:02filtern und den tatsächlichen CPU oder
Netzwerkverkehr sich anschauen. Also es -
17:02 - 17:07muss halt nur einmal gemacht werden und
auch wenn neue Apps eingerichtet werden -
17:07 - 17:14und hoch kommen, läuft automatisch alles
mit ins Monitoring oder Logging über -
17:14 - 17:23Elasticsearch und Kibana. Ja, und dann kann
man auf der Basis auch Alerts definieren -
17:23 - 17:28und die in seinen Slack-Channel (also Open-
Knowledge-Channel) theoretisch irgendwie -
17:28 - 17:32schicken lassen und dann könnten ein paar
Freiwillige sich darum kümmern, wenn sie -
17:32 - 17:42sehen, dass irgendwas im Argen liegt. Paar
Sachen gibt es auch bei uns immer noch zu -
17:42 - 17:48verbessern. Also einmal zur Zeit nutzen wir
den Standardweg zur Authentifizierung. Das -
17:48 - 17:54sind Zertifikate bei Kubernetes. Das kann
man eventuell auch eleganter lösen über -
17:54 - 17:59ein Keycloak-Setup und dann hauen wir
unsere Leute in eine GitHub-Gruppe und die -
17:59 - 18:04bekommen dann darüber Zugriff. Wir haben
auch schon laufen ein verteiltes -
18:04 - 18:14Dateisystem. Also alle unsere drei Server
laufen zur Zeit bei Scaleway, und die haben -
18:14 - 18:18halt irgendwie keinen Cloudspeicher.
Deswegen muss man sich halt selber darum -
18:18 - 18:25kümmern, dass man sein System am
besten verteilt laufen lässt, weil wir ja -
18:25 - 18:30auch ausfallsicher sein wollen, falls
mal ein Node irgendwie komplett abschmiert. -
18:30 - 18:34Und da gibt es auch verschiedene Sachen,
die fürs Kubernetes Umfeld gebastelt -
18:34 - 18:41werden. Zum Beispiel OpenEBS. Da
kann man dann einfach die dis definieren, -
18:41 - 18:47die bei den bei den Servern hängen und
sagt, wie stark die Replizierung sein soll. -
18:47 - 18:53Wir spielen ein bisschen rum. Also da gibt es
auch immer Versionsupdates und man muss -
18:53 - 18:57gucken, wie gut man das migriert kriegt. Ist
noch ein bisschen testweise, aber auch -
18:57 - 19:04theoretisch dann die Möglichkeit, dass man
einfach eine App starten lässt, der -
19:04 - 19:08Speicher OpenEBS zuweist und egal,
ob diese App nachher – auf welchem Server -
19:08 - 19:17die nachher startet, kriegt die Zugriff auf
ihre Daten. Das ist falsch, da muss -
19:17 - 19:24man ein Leerzeichen zwischen. So weit von
mir. Wir haben unser Setup bei -
19:24 - 19:30"Code for Münster" laufen. Ich selber kann auch
gerne noch mehr zu Kubernetes erzählen. -
19:30 - 19:37Also auch die nächsten ein, zwei Tage.
@webwurst ist das Kürzel auf Twitter, GitHub, -
19:37 - 19:44Gmail oder einfach googlen. Der Name ist nicht so
oft verwendet. Ja, also die Grundidee für -
19:44 - 19:48den Talk war ein bisschen, dass, wenn andere
Code-for-Labs irgendwie auch Lust haben... Am -
19:48 - 19:51meisten Sinn macht es wahrscheinlich, dass
man sich Server teilt. Also wir haben eben -
19:51 - 19:56drei Server, die jetzt jeweils – die
insgesamt ungefähr 100 Gigabyte RAM -
19:56 - 20:02haben. Das ist uns eigentlich zu viel, aber
kleinere sind irgendwie wieder teurer. Also -
20:02 - 20:07falls sich Leute zusammentun wollen oder
einfach nur neugierig sind auf Kubernetes -
20:07 - 20:14und wie man das sinnvoll einsetzt, haben
wir die Beispiele, helfen gerne aus – ja, und -
20:14 - 20:21würden gerne auch zusammenarbeit mit
anderen Code-for-Labs. Vielen Dank. -
20:21 - 20:27Applaus
-
20:27 - 20:32Herald: Tobias – danke dir. So, wir haben noch
ein bisschen Zeit für Fragen. Also wenn -
20:32 - 20:35irgendwer eine Frage hat, dann könnt ihr
mal irgendein Zeichen geben. Dann komme ich -
20:35 - 20:46gerne mit dem Mikrofon zu euch.
Mensch 1: Ich hätte 'ne Frage, und zwar: -
20:46 - 20:53Ich hab das eben nicht ganz verstanden.
OpenEBS wolltet ihr als verteiltes Dateisystem -
20:53 - 20:59später einsetzen. Was nutzt ihr jetzt und
wieso habt ihr euch für OpenEBS entschieden? -
20:59 - 21:04Tobias: Wir hatten uns vorher mal Rook
angeschaut. Wir haben jetzt OpenEBS schon -
21:04 - 21:08laufen, aber ich nenne es noch
experimentell. Also version 0.7 läuft, -
21:08 - 21:14gerade 0.8 ist glaube ich raus. Warum? Ich
hatte mit denen auf der auf der KubeCon -
21:14 - 21:18in Kopenhagen gesprochen und das sind
irgendwie 200 Leute im Team, die viel Storage -
21:18 - 21:24schon gemacht haben, komplett Open Source
und ich glaube, die haben da ganz gute -
21:24 - 21:29ideen – auch wenn das relativ komplex ist,
was die da so schreiben zu ihrer -
21:29 - 21:33Architektur. Aber ja, das ist einfach der
Grund. Wir sind auch offen für anderes, wenn's -
21:33 - 21:38gute Erfahrungen gibt, wenn du welche hast...
Mensch1: Nee, also ich frage deshalb, weil -
21:38 - 21:43wir haben nämlich auch den Instanzen,
mit denen ich bisher Erfahrungen gesammelt -
21:43 - 21:48habe, war das immer das große Fragezeichen
am Ende: Was was benutzen wir als Persistant -
21:48 - 21:56Storage? Weil ich finde, da sind die
Hürden sehr hoch für einen Einstieg, sage ich -
21:56 - 22:02mal. – oder was auch immer man da
irgendwie als als Dateisystem benutzen kann... -
22:02 - 22:04Und deswegen war ich einfach
nur neugierig. -
22:04 - 22:06Tobias: Das stimmt.
Mensch1: Weil, die Entscheidung steht -
22:06 - 22:10uns auch noch bevor.
Tobias: Alternativ, wenn du eine verteilte -
22:10 - 22:16Datenbank hast, kannst du eben auch Local
Storage benutzen, aber – ja – musst du -
22:16 - 22:21halt irgendwie über die Datenbank
dann gehen. Ja. -
22:21 - 22:24Herald: Hier hinten war noch...
-
22:24 - 22:28Mensch 2: Hallo. Ich wollte fragen: Wie lange
hat es dauert, euch das ganze Setup aufzusetzen -
22:28 - 22:32und seid ihr irgendwo darauf gestoßen,
wo ihr das nicht so umsetzen konntet, wie ihr -
22:32 - 22:36das umsetzen wolltet, beim Alarming oder
Monitoring oder so? Also irgendwas rein -
22:36 - 22:42hacken haben müssen?
Tobias: Das Ganze ist schwer zu sagen. Als -
22:42 - 22:48wir angefangen haben, hatten wir auch
relativ – ich glaube, da gab es noch nicht so -
22:48 - 22:51super viel fertiges Tooling. Ich glaub,
Prometheus und Graphana hatten wir selbst -
22:51 - 22:57gebastelt, dann mit Docker auch noch, und das
war so "learning by doing" auch ein bisschen. -
22:57 - 23:03Aber mittlerweile sehe ich jetzt eben
halt: Storage ist immer ein bisschen eine -
23:03 - 23:08Schwierigkeit oder verteilte Datenbanken,
aber grundsätzlich – der Aufbau von dem -
23:08 - 23:15System oder eben auch diese einfache
Pipeline mit Flux, das steht halt und -
23:15 - 23:22tut. Also, da haben wir keine großen Probleme
gerade. Auch im Monitoring ändert -
23:22 - 23:28sich halt laufend was. Also am spannendsten
ist jetzt der Prometheus Operator -
23:28 - 23:32eventuell und da gibt es dann Kube
Prometheus, und die generieren dir eine -
23:32 - 23:36ganze Menge Dashboards, und du hast auch
eine Art Programmiersprache dann für die -
23:36 - 23:41Dashboards, die du verwenden kannst. Ja, es gibt
ständig was Neues zu entdecken und -
23:41 - 23:46auszuprobieren.
Herald: Okay, hier war noch jemand... -
23:46 - 23:56Mensch 3: Vielleicht könnt ihr auch noch
probieren, die StorageOS. ich -
23:56 - 24:02habe mit den Leuten auch geredet auch in
Kopenhagen. Sieht auch interessant aus. -
24:02 - 24:05Und dann, Sie haben drei Server?
Tobias: Ja. -
24:05 - 24:08Mensch 3: So, das sind drei Master
und auch Node? -
24:08 - 24:13Tobias: Ja. Also wir haben den Master
halt nur auf einem laufen, aber -
24:13 - 24:16trotzdem nutzen wir den auch für normale –
Mensch 3: Nur ein Master? -
24:16 - 24:19Tobias: Ja, wir haben einen Master,
und wenn der down geht, -
24:19 - 24:23läuft ja der restliche Kram auch noch
weiter, bis wir ihn wieder hochziehen. -
24:23 - 24:27Das Ding ist, dass wir das eben auch
alles hobbymäßig machen und selber -
24:27 - 24:35finanzieren. Also für das Code-for... auch
nur einer. Funktioniert aber, wenn -
24:35 - 24:39ich den einfach neu starte, dann
warte ich fünf Minuten und dann hat sich -
24:39 - 24:44alles wieder gefunden. Ja, und die Apps auf
den anderen Nodes laufen halt eh weiter und -
24:44 - 24:49können weiter von außen erreichbar sein.
Mensch 3: Habt ihr schon mal gedacht, ein -
24:49 - 24:55Operator? Dann bräuchte man nicht
die Storage distribuieren, aber dann -
24:55 - 25:02alle sieben, dann wird zum Beispiel Postgres,
der wird realisiert und der Operator, der -
25:02 - 25:05handelt das.
Tobias: Ja, gucken wir uns auf jeden Fall -
25:05 - 25:12an, was es da gibt. Oft hat man eben nicht –
Elasticsearch tut es ganz gut, wenn man -
25:12 - 25:17das Ding in dreifach laufen lässt. Postgres
und MySQL kann man ganz gut hochziehen als -
25:17 - 25:24Operator über mehrere Nodes, aber
sobald irgendwas schief läuft, können die -
25:24 - 25:27Operator zur Zeit da noch nicht aushelfen.
Dann muss man die man alle manuell neu -
25:27 - 25:31starten. Das ist okay, aber irgendwie –
es gibt nicht so viel was sich selbst dann -
25:31 - 25:33repariert. Wird wahrscheinlich noch kommen,
aber – -
25:33 - 25:40Herald: Du hattest eine Frage?
Mensch 4: Du hattest gerade, wenn der -
25:40 - 25:45Master kaputt geht, dann funktionieren die
Services trotzdem weiter. Wie macht ihr das -
25:45 - 25:49dann mit diesem Ingress, also wo kommt
das DNS an? -
25:49 - 25:54Tobias: Wir haben es versucht über so
einen DNS Round Robin. Also es war einfach – -
25:54 - 25:59Der Ingress Controller läuft auf allen – dingens.
Ja gerne was Besseres, aber bei Scaleway, wo wir -
25:59 - 26:03sind, die haben halt keinen Loadbalancer
davor. Also die bieten das nicht irgendwie als -
26:03 - 26:07Service an. Die haben wohl eine IP, die man
von Node zu Node ziehen kann, aber auch nicht -
26:07 - 26:13gleichzeitig an mehrere. Ja, es ist halt ein
günstiges Setup für Code-for. Wenn sich mehr -
26:13 - 26:17zusammentun, können wir vielleicht auch
etwas Spannenderes uns überlegen. Ja, aber -
26:17 - 26:28bisher ist es einfach so gelöst. Wir haben jetzt
ja auch nicht so lebenswichtige Apps, genau. -
26:28 - 26:41Herald: Okay, hat noch jemand eine Frage? Ich
sehe keine mehr. Sonst schreit noch mal jemand. -
26:41 - 26:47Tobias: Gut, also wenn noch irgendwie
Fragen später sind: Schreibt auf "Open- -
26:47 - 26:51Knowledge-Slack, Code for Münster" oder
@webwurst oder über Twitter oder sonstwie. -
26:51 - 26:56Würde ich mich gerne unterhalten mit Leuten.
Herald: Dann nochmal Applaus für Tobias, bitte. -
26:56 - 27:02Applaus
Tobias: Vielen Dank. -
27:02 - 27:07Abspannmusik
-
27:07 - 27:24Untertitel erstellt von c3subtitles.de
im Jahr 2019. Mach mit und hilf uns!
- Title:
- https:/.../35c3-wikipakawg-17-deu-Einfuehrung_in_Kubernetes_Deployments_fuer_Codefor_Labs_hd.mp4
- Video Language:
- German
- Duration:
- 27:24
Show all