Wenn Sie abschweifen, jedes Mal wenn jemand "Kubernetes", "Container" oder "Pods" erwähnt, dann ist dieser Artikel genau das Richtige für Sie. Keine komplexen Diagramme!
Als Front-End-Entwickler müssen Sie keine Infrastruktur von Grund auf konfigurieren können. Wenn Sie jedoch ein grundlegendes Verständnis dafür haben, wie sie funktioniert, können Sie Ihre Anwendungen unabhängiger bereitstellen und zurückrollen und sind auch bei Gesprächen über dieses Thema besser informiert.
Beginnen wir mit der Web-Suche nach Kubernetes.
Kubernetes ist ein Open-Source-System zur Orchestrierung von Containern, das die Bereitstellung, Skalierung und Verwaltung von Computeranwendungen automatisiert.
—Wikipedia
OK, aber was *ist* ein Container?

Einfach ausgedrückt ist ein **Container** wie ein virtueller Computer, den Sie remote erstellen, verwenden, zerstören und neu starten können.
Stellen Sie sich nun vor, dieser Computer befindet sich tatsächlich in einer Cloud und läuft neben Tausenden anderer virtueller Computer. Und das alles läuft auf einem echten Computer, der extrem leistungsfähig ist. Ihr Computer ist jetzt ein Container in der Cloud.

Aber halt – wie werden Sie diesen virtuellen Computer erstellen und steuern? Wie wird er mit anderen Computern in derselben Cloud kommunizieren? Und wie wird er mit der Welt kommunizieren? Es scheint, als bräuchten Sie eine Möglichkeit, all das zu *orchestriren*. Daher: unser Maestro, **Kubernetes** (oder kurz K8s)!

Sie haben vielleicht auch schon den Begriff **Pods** gehört. Was sind das und wo passen sie hier hinein? Nun, einfach ausgedrückt sind Pods Gruppen von einem oder mehreren Containern. Sie sind die kleinste bereitstellbare Einheit in K8s, wie ein Atom.
Stellen Sie sich vor, Sie bauen eine WordPress-Website und benötigen einen Computer, auf dem PHP und eine MySQL-Datenbank laufen. Beide im selben Computer zu betreiben, könnte zu schwer sein; daher könnten Sie stattdessen einen Container für PHP und einen für MySQL erstellen, und K8s hilft dabei, dass sie kommunizieren.
Dann würden Sie diese beiden Container in einem Pod gruppieren, der die gesamte Anwendung repräsentiert. Das bedeutet, dass Sie jetzt eine gesamte Anwendung über Pods starten und beenden können.

Sie würden jedoch wahrscheinlich nicht nur einen einzigen Pod erstellen, um eine App in der Produktion bereitzustellen – es gibt noch mehr, das wir jetzt nicht behandeln müssen, aber Sie können mehr über Pods in der K8s-Dokumentation lesen.
Jetzt ist ein guter Zeitpunkt, um zu fragen: Was passiert, wenn Sie eine App in diesem Setup bereitstellen?
K8s erstellt einen neuen Pod, leitet den Traffic dorthin um und wenn es sicher ist, dass alles funktioniert, beendet es den alten Pod. Auch hier sind mehr Entitäten beteiligt, um Anfragen zu steuern und umzuleiten, aber das lassen wir heute weg.
Manchmal bricht die Bereitstellung jedoch etwas und wir müssen unsere Anwendung auf die vorherige Version zurücksetzen. Stellen Sie sich vor, alles brennt und wir müssen all diese Computer von Grund auf neu starten – Linux, Node, Git installieren, das Repository klonen, Abhängigkeiten installieren, die App bauen… das würde ewig dauern! Wenn es doch nur einen schnelleren Weg gäbe, wie das Erstellen eines Schnappschusses aus der Vergangenheit, um alles schnell wiederherzustellen zu...

Hier kommen die **Images** ins Spiel! Wahrscheinlich haben Sie diesen Begriff auch schon oft gehört. Ein Image ist wie ein Backup eines Containers mit allem, was bereits installiert und konfiguriert ist. Ein neues Image wird bei jeder Übertragung in den Hauptzweig Ihres Repositories von Ihrer Continuous Integration (Abk: CI) generiert und dann in neue Container repliziert, wenn diese erstellt werden.
Und wofür sind sie gut? Nun, hauptsächlich für zwei Dinge: Das erste ist die schnelle Wiederherstellung auf das vorherige Image, wie in unserem obigen Beispiel. Aber sie sind auch nützlich, wenn Ihre Website viel Traffic hat und ein einzelner Computer das nicht bewältigen kann.
Wenn Sie ein Image haben, können Sie beliebig viele identische Container erstellen und dieses Image auf all diesen replizieren, um exakt denselben Inhalt bereitzustellen.

Alles erledigt! Wir haben gerade die Grundlagen behandelt, wie die Infrastruktur einer Anwendung funktioniert, und jetzt können Sie hoffentlich auf die Werkzeuge extrapolieren, die Ihr Projekt verwendet.
Vielen Dank an Eduardo Shiota, der es mir ermöglicht hat, dies zu erklären!
Cool
Großartige Erklärung
Danke, dass Sie es kurz und leicht verdaulich gemacht haben….
Einfache und coole Erklärung
Das ist großartig. Ich würde mir definitiv mehr von der Reihe "Infrastruktur für Dummies" wünschen, das war schon immer ein Bereich, mit dem ich zu kämpfen hatte.
Vielen Dank für eine schöne Erklärung. Es wäre großartig, wenn Sie andere Konzepte bei Microservices so erklären könnten
Toller, leicht verständlicher Artikel! Ich würde gerne einen Vergleich zwischen Docker und Kubernetes sehen; jetzt, wo ich eine Vorstellung davon habe, was Letzteres ist, bin ich verwirrt, warum es im Hauptmenü von Docker steht. Es scheint, als wären die beiden Konkurrenten.
Docker ist eine Sammlung von Tools zur Erstellung und Ausführung von Containern, die Laufzeitumgebung, das Image-Building usw. Es bietet nicht viel mehr als grundlegende Steuerungsmöglichkeiten. K8s verwaltet Ihre Container weitaus umfassender: Log-Aggregation, Lastverteilung, Skalierung nach oben und unten, Überwachung usw.
Vielen Dank für diese Erklärung. Sie haben es gerade sehr leicht verständlich gemacht. Jetzt wird weiteres Lesen nicht mehr so kompliziert sein, wie ich ursprünglich dachte
Sehr gut erklärt, tatsächlich hatte ich das Wort Kubernetes vor zwei Tagen gehört und mich gefragt, worum es dabei geht. Ihr Artikel war genau richtig und wunderschön präsentiert. Danke nochmals, ich freue mich auf Ihre zukünftigen Artikel.
Satish Tripathi
Schöne Erklärung, danke!!