‫Gut. In den letzten Vorlesungen haben
‫Sie angefangen, die verschiedenen Bereiche von Kubernetes kennenzulernen, die
‫gerade erweitert werden. Wenn Sie es
‫sich wie diesen zentralen Globus vorstellen, der nur aus
‫den Binärdateien und der
‫Basisinfrastruktur von Kubernetes besteht, werden die Ringe immer
‫größer. Mit
‫Ingress- und Operator-Pattern und benutzerdefinierten Ressourcendefinitionen.
‫Es wird immer größer.
‫Jetzt möchte ich mit Ihnen darüber sprechen, wie
‫es noch größer wird. In der Tat ist dies wahrscheinlich der eine Bereich, in dem
‫es ein bisschen verrückt ist.
‫Das liegt im Bereich der Meinungen darüber,
‫wie YAML für diese Ressourcen bereitgestellt werden soll, richtig.
‫Bisher haben Sie gesehen, dass das Kubectl zutrifft.
‫Nun, das wird Ihnen den Einstieg erleichtern und wird Sie
‫wahrscheinlich durch Ihre erste Bereitstellung eines Container-Orchestrators führen,
‫richtig. Du wirst... Unabhängig
‫davon, ob Sie Swarm oder Kubernetes verwenden, erhalten Sie diese
‫YAML, und Sie haben ein Repo, und Sie speichern es dort,
‫und das macht Sinn.
‫Sobald Sie anfangen, dies zu erweitern und Teams,
‫Berechtigungen und verschiedene
‫Arten von Berechtigungen sowie Personen, die
‫Dinge regieren oder genehmigen müssen, haben, wird alles komplizierter.
‫Was in dieser Welt passiert ist, wie Sie
‫Ihre Apps auf Kubernetes bereitstellen,
‫und darum geht es im Grunde genommen. Wir werden über die Tatsache
‫sprechen, dass es mittlerweile über 60 gibt, es sind ungefähr 80,
‫aber viele von ihnen sind keine echten Projekte mehr oder sie
‫sind tot oder archiviert.
‫Es gibt jedoch mindestens
‫60 Möglichkeiten, Tools zu Kubernetes hinzuzufügen,
‫um Ihre Anwendungen einfach auf Kubernetes bereitzustellen.
‫Es gibt viele Meinungen, richtig.
‫Hier beginnen die Meinungen darüber, wie Sie
‫dies tun sollten. Alles von Jenkins X bis Helm
‫und darüber hinaus. Es gibt
‫all diese unterschiedlichen Dinge und Meinungen zu
‫Kubernetes ist keine eigenwillige Infrastruktur, daher benötigen wir Meinungen, um die
‫Leute durch den Prozess der
‫Bereitstellung und Aktualisierung ihrer Apps zu führen.
‫Also hat jeder einen. Wenn Sie in
‫Kubernetes etwas darüber gelesen haben, haben
‫Sie wahrscheinlich von Helm gehört. Helm zu Kubernetes ist
‫Kubernetes zu Containern im Wesentlichen. Helm ist die De-facto-Methode, mit
‫der jeder
‫Vorlagen erstellen und Vorlagenstandards zum Bereitstellen von
‫Apps von Drittanbietern oder zum Erstellen eigener
‫benutzerdefinierter Helm-Diagramme verwenden möchte.
‫So heißen sie Charts.
‫Es handelt sich im Wesentlichen um eine YAML-Vorlage, mit
‫der Helm jedoch die YAML erstellen
‫oder ausspucken kann, die dann für Sie in Ihren
‫Kubernetes-Cluster eingeht. Aber es ist nicht die einzige Meinung, richtig.
‫Ich sagte, es gibt mindestens über 60, als ich das letzte Mal nachschaue.
‫Es gibt tatsächlich ein Google Sheet, das ich in die
‫Referenzlinks eingefügt habe. Es ist etwas veraltet, aber es ist
‫die letzte bekannte Liste aller Orte, an denen
‫Sie diese verschiedenen Bereitstellungsmethoden finden können. Docker selbst haben ihre eigene Meinung, die
‫sehr interessant ist, insbesondere wenn Sie sich eng mit dem
‫Docker-Ökosystem befassen möchten. Das
‫ist Compose on Kubernetes.
‫Wenn Sie Docker Desktop haben, können
‫Sie heute Kubernetes aktivieren, was Sie wahrscheinlich bereits für diesen
‫Teil des Kurses getan haben. Sie können Docker Stack Deploy
‫verwenden und anstatt es an Swarm zu senden, können Sie
‫es an Kubernetes senden.
‫Wenn Sie sich den Befehl docker stack deploy ansehen und
‫die Hilfe dazu ansehen, werden Sie feststellen, dass dort
‫eine Option zum Angeben des Orchestrators vorhanden ist,
‫den Sie verwenden möchten. Tatsächlich können Sie
‫in den Einstellungen von Docker Desktop festlegen, dass Kubernetes für die
‫Stapelbereitstellungsbefehle bevorzugt oder standardmäßig verwendet werden soll.
‫Das ist ziemlich interessant, weil ich dachte, dass Compose YAML anders
‫ist als Kubernetes YAML.
‫Genau das macht Compose on Kubernetes jetzt.
‫Es ist im Wesentlichen ein Tool von Drittanbietern.
‫Von Docker geht es darum, YAML of Compose,
‫das Compose-Format, in das YAML of Kubernetes-Format
‫zu implementieren, zu interpretieren oder technisch
‫zu übersetzen.
‫Ich habe hier einen Link eingefügt, über
‫den Sie nachlesen können, ob Sie Docker Enterprise
‫als Ihr Unternehmenstool für Kubernetes und Swarm and
‫Docker im Allgemeinen betrachten.
‫Dann sollten Sie dies auf jeden Fall überprüfen, da es sich um
‫ein Standardprodukt handelt. Das Schöne an
‫dieser Funktion ist, dass der Workflow sehr
‫einfach bleibt. Grundsätzlich verwenden Sie
‫Compose YAML in der gesamten Pipeline und können es in
‫Ops und Dev verwenden. Es zwingt Sie nicht
‫zu sagen, OK für Entwickler, Sie müssen YAML für Compose
‫und für Produktion und Server haben, Sie müssen dieses Kubernetes YAML
‫haben, und sie sind nicht kompatibel, richtig.
‫Die Idee mit Docker war, dass sie das für zu
‫kompliziert hielten. Vereinfachen wir es.
‫Verwenden wir einfach einen YAML-Standard für die
‫gesamte Steuerungspipeline.
‫Und ich mag es. Das Problem dabei
‫ist, dass es nicht alles unterstützt, was Kubernetes
‫unter der Sonne kann, richtig. Ich meine natürlich, wir
‫haben eine einzige Seite in den Docker-Dokumenten, auf der alle
‫Funktionen einer Compose-Datei aufgelistet sind. Kubernetes YAML ist
‫jedoch so komplex, dass wir uns mit mehreren Befehlen,
‫API-Referenzen und all dem befassen müssen.
‫So klar kann es unmöglich alles machen.
‫Das Schöne ist, dass auf der Compose for
‫Kubernetes-Website in GitHub über die verschiedenen Funktionen gesprochen wird,
‫die es unterstützt.
‫Es ist die 80/20 Regel dort.
‫Mit anderen Worten, es unterstützt die 20 Prozent
‫der Kubernetes-Funktionen, die wahrscheinlich 80 Prozent von uns benötigen.
‫Sie können also damit beginnen und sehen, ob dieser Workflow
‫für Sie funktionieren würde. Eine weitere nette
‫Sache ist, dass Ende 2018 Open Source Compose für
‫Kubernetes verfügbar ist, sodass Sie es jetzt auf jeder Kubernetes-Infrastruktur
‫bereitstellen können, die Sie haben, und es funktioniert einfach
‫als eine Art Interpreter. Es übersetzt jedes Mal,
‫wenn Sie die Compose-Datei von Docker aus verwenden und
‫Docker-Befehle verwenden, wird Ihr Kubernetes-Cluster für Sie verbunden,
‫das automatisch in Kubernetes YAML übersetzt und Sie
‫können loslegen. Zu diesem
‫Zeitpunkt können Sie tatsächlich viele der Kubernetes YAML
‫für Ihre Anwendungen ignorieren. Vielleicht verwenden
‫Sie Kubernetes YAML für Infrastruktursachen, die Sie
‫nicht jeden Tag bereitstellen. Damit Ihre
‫Entwickler Compose YAML leichter schreiben und
‫die Produktion beschleunigen können, verwenden Sie Compose
‫on Kubernetes als Workflow.
‫Dann verwenden Sie vielleicht Helmkarten,
‫was für Ihre Hauptinfrastruktur ein konkurrierender
‫Standard ist. Denn das Besondere
‫an Helm ist, dass es bei vielen dieser Diagrammvorlagen
‫sofort einsatzbereit ist, sodass Sie möglicherweise die Protokollierung
‫von Prometheus oder Elasticsearch mit ELK oder Ähnlichem bereitstellen können.
‫Diese Vorlagen sind bereits im Lieferumfang enthalten
‫und ermöglichen einen schnelleren Einstieg.
‫Denken Sie auch daran, dass dies alles optional ist.
‫Sie können Kubernetes mit dem Standard-YAML erstellen, mit dem Sie
‫bisher gespielt haben, und das ist in Ordnung.
‫Diese anderen Dinge sind nicht erforderlich.
‫Sie sind nur optionale Tools von Drittanbietern.
‫Wenn das Team wächst und mehrere
‫Produktions-Kubernetes-Cluster vorhanden sind und mehrere Teams
‫involviert sind, wird traditionell alles schwieriger, und
‫Sie werden wahrscheinlich mehr als eine
‫Lösung erhalten. Sie könnten mit Helm auf bestimmten Clustern enden.
‫Möglicherweise haben Sie Compose on Kubernetes für Ihre
‫Entwickler oder ähnliches.
‫Oder eines dieser über 60 Tools
‫im Ökosystem.
‫Der letzte Punkt ist, dass, da Helm momentan wirklich der
‫Marktführer in diesem Bereich ist,
‫fast jede Distribution ihn verwendet oder unterstützt oder sogar
‫sofort einsatzbereit ist. Denken Sie daran,
‫dass Sie Helm in einer großen Umgebung wahrscheinlich nicht meiden
‫können, wenn Sie sich diese Tools ansehen.
‫Du musst es nur benutzen.
‫Das Schöne ist heutzutage, dass es auf 3 ist. 0 und dass es
‫in der 3 viel einfachere Bereitstellungsoptionen dafür
‫gibt. 0 gegen die 1. 0 und
‫2. 0. Damit wird
‫es immer besser und einfacher. Viele dieser Bereitstellungstools unterstützen
‫Sie lediglich dabei, Ihre YAML auf verschiedene Arten zu
‫schablonieren. Kubernetes selbst
‫hatte die längste Zeit nichts wirklich.
‫In den letzten Releases wurde nun Kustomize
‫with a K veröffentlicht.
‫Wenn Sie dieses Wort mit einem K sehen, wissen Sie, dass
‫es eine Besonderheit ist.
‫Sie können damit ähnliche Aufgaben wie mit Helm und
‫diesen anderen Bereitstellungslösungen ausführen, aber es ist
‫nicht ganz so leistungsfähig
‫wie mit Helm.
‫Also ist Helm immer noch der Anführer.
‫Kustomize ist eine Art neues Kind auf dem Block, aber es ist sofort
‫einsatzbereit mit allem, was Sie in Kubernetes tun.
‫Der Kubectl-Befehl unterstützt dies.
‫Wirklich, was es ist, ist es,
‫nur YAML zu nehmen, anstatt eines YAML-Templats, es ist nur
‫YAML, das Sie bereits haben, das Standard-Kubernetes-YAML, und Sie
‫können dann diese Datei nehmen und etwas anderes
‫darauf ausführen und es durch Überschreiben ändern von Art.
‫Ähnlich wie in Swarm.
‫Wir haben tatsächlich in Swarm und Compose
‫Dateien und ähnliches überschrieben.
‫Sie haben jetzt diese Out-of-the-Box gebaut.
‫Es hat viele Funktionen.
‫Ich denke, mehr oder weniger, es ist nicht ganz so, was
‫die Ausstattung von Helm angeht, aber zumindest ist
‫es sofort einsatzbereit.
‫Denken Sie daran, wenn Sie Docker haben, die
‫neueste Version, 19. Ab Version 03 von
‫Docker gibt es jetzt den Unterbefehl docker app, der
‫ein eigenes Template für Compose YAML
‫erstellt und mit dieser benutzerdefinierten Option für Kubernetes sehr
‫vergleichbar ist. Wenn Sie sich
‫an den Docker-Track halten und Docker Enterprise
‫in Betracht ziehen oder einfach nur daran interessiert sind, wie Docker
‫sich auf den Entwickler-Workflow konzentriert, lesen Sie
‫den Unterbefehl docker app und auch das Docker-App-Repo Ich werde
‫die Ressourcen hier einsetzen.
‫Da sie Dokumentation darüber haben, wie Sie
‫Compose YAML verwenden können, können Sie Dinge wie Umgebungsvariablen
‫und andere Dinge extrahieren. Packen Sie alles in ein
‫einzelnes Image und versenden Sie dann Ihre YAML als Image.
‫Das bedeutet, dass Sie Ihre YAML jetzt versionieren und
‫mit einer einzigen Zeile bereitstellen können, ohne
‫die YAML herunterfahren und dann lange Befehle eingeben zu müssen.
‫Das ist ein ziemlich interessanter Weg.
‫Es wird ein neuer Standard namens CNAB verwendet, auf den wir
‫hier nicht näher eingehen werden, aber das ist
‫C N A B.
‫Es war eine Ankündigung, die Docker und Microsoft im Jahr
‫2018 gemacht haben.
‫Sie können dies alles auf der Docker App-Website
‫in den Ressourcen nachlesen. Auch hier geht es
‫um optionale Möglichkeiten von Drittanbietern, die Standard-YAML anzupassen und
‫zu erweitern, um es Ihrem Team bei Ihrem Wachstum
‫zu erleichtern.