JavaRush /Java-Blog /Random-DE /Wer sind Docker, Kubernetes, OpenShift und in welcher Bez...
Павел
Level 11

Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?

Veröffentlicht in der Gruppe Random-DE
Alles beginnt mit der Verpackung. In der industriellen Entwicklung besteht beispielsweise die Notwendigkeit, die zusammengestellte Anwendung zu „verpacken“, damit sie auf den Server übertragen werden kann, wo sie funktioniert, und zwar in der Form, in der der Entwickler sie auf seinem Computer zusammengestellt hat, eine solche „Verpackung“ soll als eine Art Schutz dienen. Dadurch werden Überraschungen vermieden, etwa wenn eine Anwendung während eines Tests funktioniert, bei der Übertragung in die Produktion jedoch abstürzt. Außerdem isoliert das „Paketieren“ eine Anwendung von einer anderen, die sich auf demselben Server befindet. Eine solche Isolierung ermöglicht es einer Anwendung, die Arbeit einer anderen nicht zu beeinträchtigen (z. B. kann eine Anwendung nicht den gesamten RAM des Servers übernehmen und verlässt die zweite Anwendung auf sein Schicksal). Die Vorteile des „Verpackens“ mit einer Microservice-Architektur sind besonders deutlich, und das ist verständlich; es gibt viele Microservices – viele kleine Anwendungen, die miteinander kommunizieren müssen, sich aber gleichzeitig nicht gegenseitig stören sollten. Ein Beispiel ist eine Kommode (Server), in der es viele verschiedene Schubladen gibt und wir verschiedene Socken problemlos von einer Schublade in eine andere verschieben können, ohne dass sie sich untereinander oder mit Höschen vermischen. Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 1 Die Verpackung wird durch Virtualisierungstools erstellt. Früher wurden virtuelle Maschinen (VMs) als „Verpackung“ verwendet. Alte Leute werden sich erinnern, wie sie Windows XP unter Vista in einer virtuellen Maschine bereitgestellt haben. Jetzt gehört VM für die Anwendungspaketierung der Vergangenheit an. Container haben die Welt erobert. Denn sie sind: leichter, produktiver und sicherer. Genauer gesagt: Wie unterscheidet sich ein Container von einer virtuellen Maschine? Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 2 Sie müssen sich einige Vorteile von Containern merken: • Sie sind kleiner (beanspruchen weniger Speicher auf dem Server); • Zugriff auf gemeinsam genutzte Serverressourcen (RAM, Prozessorrechenzeit) haben; • bessere Portabilität in andere Umgebungen (von Testumgebungen bis hin zu Industrieumgebungen); • sorgen für eine höhere Startgeschwindigkeit (da der Container leicht ist, startet er schneller). Docker ist die Mutter der Container. Wenn sie Container sagen, meinen sie Docker. Docker ist eine Software zur Automatisierung der Bereitstellung und Verwaltung von Anwendungen in Containerumgebungen. Anhand von Beispielen ist Docker eine Mischung aus einem Online-Designer und einem 3D-Drucker mit Kran. Das heißt, er kann zunächst eine Vorlage (Bild) für einen Container entwerfen, den Container gemäß den gegebenen Bedingungen drucken (erstellen) (Bild) und ihn dann an die gewünschte Stelle verschieben. Anstelle von Hebeln werden Dockerfiles verwendet. Der Verwaltungsprozess ist einfach: Sie schreiben Dateien und Befehle, führen sie aus und sehen, was passiert. Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 3 Erste Bekanntschaft mit Docker Docker Compose – aktualisierter Docker Schauen wir uns nun ein Szenario an, in dem mehrere Container an einem Standort ausgeführt werden müssen. Das hierfür verwendete Dienstprogramm ist Docker Compose. Docker Compose ist ein in Docker enthaltenes Tool. Es soll Probleme im Zusammenhang mit der Projektbereitstellung lösen. Unterschied zwischen Docker und Docker Compose: Docker dient der Verwaltung einzelner Container. Docker Compose wird verwendet, um mehrere Container gleichzeitig zu verwalten. Dieses Tool bietet die gleichen Funktionen wie Docker, ermöglicht jedoch die Arbeit mit komplexeren Strukturen. Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 4 Typisches Szenario für die Verwendung von Docker Compose: Stellen Sie sich vor, Sie sind Entwickler eines Webprojekts. Dieses Projekt umfasst zwei Websites. Ersteres ermöglicht es Geschäftsleuten, mit nur wenigen Klicks Online-Shops zu erstellen. Die zweite zielt auf die Kundenbetreuung ab. Diese beiden Sites interagieren mit derselben Datenbank. Ihr Projekt erfreut sich immer größerer Beliebtheit und es stellt sich heraus, dass die Leistung des Servers, auf dem es läuft, nicht mehr ausreicht. Aus diesem Grund entscheiden Sie sich, das gesamte Projekt auf einen anderen Computer zu verschieben. Wenn Sie noch nichts wie Docker Compose verwendet haben, müssen Sie die Container einzeln migrieren und neu konfigurieren und hoffen, dass Sie dabei nichts vergessen. Wenn Sie Docker Compose verwenden, kann das Verschieben Ihres Projekts auf einen neuen Server durch die Ausführung einiger Befehle gelöst werden. Um die Übertragung des Projekts an einen neuen Standort abzuschließen, müssen Sie lediglich einige Einstellungen vornehmen und eine Sicherungskopie der Datenbank auf den neuen Server hochladen. Typischer DockerComposer: Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 5 Was Sie hier beachten müssen: Container sind das Hauptmittel zum „Verpacken“ von Anwendungen. Docker verwaltet Container, erstellt Container-Images, nimmt Container auf und verschiebt sie. Um mehrere Container gleichzeitig zu verwalten, wird Docker Compose verwendet, das in Docker enthalten ist. Bei diesen Programmen handelt es sich um kostenlose Software (mit einem Wort: Freebies). Kubernetes (K8s) – Docker-Automatisierung. Daher haben wir Container bereitgestellt und wissen, wie wir sie „stapelweise“ von Maschine zu Maschine übertragen können. Doch plötzlich fiel einer der Container um! Was zu tun ist? Wer wird es wieder erhöhen? Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 6 Natürlich können Sie dies auch manuell über Docker tun. Aber man muss etwas tun, etwas schreiben, man braucht eine Art Automatisierungstool. Hier kommt Kubernetes (abgekürzt K8s) ins Spiel, das sich auch mit der Verwaltung und Orchestrierung (automatisierte Verwaltung zusammengehöriger Entitäten) von Containern befasst. Mit K8s müssen Sie Container nicht Tag und Nacht überwachen. Es reicht aus, das Verhaltensszenario zu definieren, und K8s erledigt alles selbst. Hauptmerkmale von Kubernetes 1. Bietet Skalierbarkeit und Verwaltung Ihrer Konfiguration. 2. Sie können beschreiben, was Sie bei der Bereitstellung eines Clusters erreichen möchten, und K8s wird dies tun. Geben Sie beispielsweise die Anzahl der Pods an, wie viel Speicher ihnen zugewiesen werden soll, geben die Anzahl der Replikate (Instanzen) von Anwendungen an, die (in Containern) auf Pods bereitgestellt werden. 3. Verantwortlich dafür, das System in einem bestimmten Zustand zu halten. Wenn etwas herunterfällt, werden die K8s es gemäß der festgelegten Konfiguration aufheben. Was Sie hier beachten müssen: Kubernetes ist ein Tool zur Orchestrierung von Containeranwendungen – das automatisiert deren Bereitstellung, Skalierung und Koordination in einem Cluster. Unterstützt wichtige Containerisierungstechnologien, einschließlich Docker. K8s ist Open-Source-Software. Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 7 OpenShift ist ein Ferrari in der Welt der Virtualisierung, cool, schnell und teuer. Kommen wir zur Entwicklung des Themas und zu OpenShift. OpenShift ist ein Add-on zu Kubernetes, das zusätzliche Funktionen bietet. Es ist sofort einsatzbereit, erfordert keine lange und mühsame Konfiguration und kann sofort in die Produktion übernommen werden. Schauen Sie, wie viele verschiedene Symbole es über Kubernetes gibt. Und jeder von ihnen macht seine eigenen coolen Sachen. Wer sind Docker, Kubernetes, OpenShift und in welcher Beziehung stehen sie zueinander?  - 8 OpenShift-Highlights: • Im Gegensatz zu K8s handelt es sich um ein kostenpflichtiges Produkt. • DevOps sofort einsatzbereit, Unterstützung für grundlegende Blau/Grün-Canary-Bereitstellungsszenarien; • Integrierte Jenkins-Unterstützung; • Bietet praktische Tools für die Verwaltung und Arbeit mit dem Cluster; • Verfügt über ein strengeres Sicherheitsmodell und eine integrierte Überwachung. Es lohnt sich noch einmal zu betonen, dass OpenShift im Gegensatz zu Kubernetes ein kostenpflichtiges Produkt ist. Der Unterschied besteht darin: Wenn wir reines Kubernetes verwenden, lösen wir alle Probleme selbst. Wenn wir über OpenShift sprechen, handelt es sich um ein Produkt von Red Hat, das auftretende Probleme im Rahmen eines kostenpflichtigen Supports löst. Fassen wir zusammen: In der industriellen Entwicklung besteht die Notwendigkeit, die Anwendung zu „verpacken“, dieser Ansatz ist insbesondere in der Microservice-Architektur relevant. Behälter sind das wichtigste Mittel zur Verpackung von Anwendungen. Docker verwaltet Container, erstellt Container-Images, nimmt Container auf und verschiebt sie. Um mehrere Container gleichzeitig zu verwalten, wird Docker Compose verwendet, das in Docker enthalten ist. Bei diesen Programmen handelt es sich um freie Software. Kubernetes (K8s) ist ein Tool zur Orchestrierung von Containeranwendungen, das deren Bereitstellung, Skalierung und Koordination in einem Cluster automatisiert. Unterstützt wichtige Containerisierungstechnologien, einschließlich Docker. K8s ist Open-Source-Software. OpenShift ist ein Add-on zu Kubernetes, das zusätzliche Funktionalität bietet. Im Gegensatz zu K8s handelt es sich hierbei um ein kostenpflichtiges Produkt, das für den Unternehmensgebrauch bestimmt ist. Bietet DevOps sofort einsatzbereit: Unterstützung für die wichtigsten Bereitstellungsszenarien Blue/Green, Canary, verfügt über integrierte Unterstützung für Jenkins und bietet praktische Tools für die Verwaltung und Arbeit mit dem Cluster. Verfügt über ein strengeres Sicherheitsmodell und eine integrierte Überwachung. Für diejenigen, die Lust auf Codierung haben: Packen Sie eine Spring Boot-Anwendung in einen Container. So stellen Sie Postgres in Docker bereit und stellen eine Verbindung zu einer Spring-Boot-Anwendung her. Webinar: Docker – Wie arbeitet man mit Containern? — Backend-Entwicklung in Java
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION