Vorlagen sind für GitOps-gesteuerte Automatisierung unverzichtbar
Veröffentlicht: 2022-05-27Inhaltsverzeichnis
GitOps-gesteuerte Automatisierung
Kubernetes wurde berühmt für seine einfache Skalierung und Verwaltung von containerisierten Anwendungen. Es ermöglicht Ihnen das Sortieren und Verwalten von Knoten, Teilen, Containern, Diensten und Konfigurationskarten während des gesamten Anwendungslebenszyklus. Es war schwierig, eine solche Flexibilität und Kontrolle durch Skripte zu erreichen.
Aber dank des Ankündigungsansatzes von Kubernets für die Infrastruktur können Sie Präzisionsänderungen auf jeder Ebene definieren. Kubernetes ermöglicht es Ihnen, mehrere Tools zu integrieren, um die automatisierte Planung, Bereitstellung und Überwachung von Containern zu erleichtern.
Ein solches Tool ist Helm, ein von der CNCF übernommenes Automatisierungs-Framework, das nicht nur in Kubernetes-Kreisen, sondern auch im GitOps-Ökosystem populär geworden ist. In diesem Beitrag werden wir uns ansehen, wie Helm dabei hilft, Cloud-native Anwendungen über Kubernetes und GitOps zu automatisieren.
Was ist Helm?
Obwohl Helm als Paketmanager beschrieben wird, ist es ein leistungsstarkes Tool zur Automatisierung der Installation, Bereitstellung, Aktualisierung und Verwaltung von Kubernetes-Anwendungen. Die Verwaltung des Kubernetes-Manifests ist eine Aufgabe, die systemübergreifend immer komplexer wird. Für eine einzelne Sortierung sind doppelte mehrere YAML-Dateien und Hardcode-Werte erforderlich. Kubernetes benötigte eine bessere Möglichkeit, YAML-Dateien über ein einfaches Verpackungsformat zu verwalten, was zu Helm-Diagrammen führte. Der Zweck des Helms geht jedoch über die Vorlage hinaus.
Diagramme
Helm-Diagramme sind Einheiten, die für Kubernetes-Anwendungen verwendet werden können. Jedes Diagramm kann Dateien, Metadaten und Anwendungsinfrastruktur enthalten. In Go geschriebene Diagramme werden in bestimmten Vorlagenverzeichnissen mit zugehörigen Variablen, Versionen und Beschreibungen gespeichert. Indem Sie diese Diagramme als Archive in einem Repository speichern, können Sie sie in Ihrem gesamten Entwicklungsteam zur Wiederverwendung freigeben.
Sobald eine Kopie eines Diagramms im Kubernetes-Cluster installiert ist, wird dies als Ausgabe bezeichnet. Jedes Mal, wenn das Diagramm verwendet wird, wird ein neues Release erstellt, was mehrmals vorkommen kann. Publikationen helfen Ihnen, Karten zu überwachen und zu installieren.
Nachfolgend finden Sie einige wichtige Regeln, die Sie bei der Arbeit mit Helm kennen sollten.
Chart.YAML: Die Hauptdatei, die die Beschreibung Ihres Diagramms enthält
Values.YAML: Die Datei, die die Standardwerte Ihres Diagramms enthält
Charts: Ein Verzeichnis mit Sub-Charts
Vorlagen: Als Vorlagen definiertes Kubernetes Sources-Verzeichnis
Vorlagen
Ein Vorlagenordner ist eine Schlüsselfunktion von Helm. Es enthält die Konfigurationsdateien der Anwendung, die dann auf den Cluster angewendet werden. Die Dateien im Vorlagenverzeichnis nennen ihre Werte aus values.YAML.
Warum Helm?
Helm fügt der Continuous-Delivery-Umgebung einen großen Mehrwert hinzu, da es die folgenden Vorteile bietet.
Verbesserte Produktivität:
Mit Helm (zusammen mit anderen Sortierwerkzeugen wie Flux) können Sie Software mit einer einzigen Schaltfläche oder einem einzigen Befehl sortieren. Dadurch kann sich Ihr Team nur auf die Softwareentwicklung konzentrieren.
Erleichtert den Prozess:
Das Konzept der Diagramme ermöglicht es Ihnen, dasselbe Diagramm über die gesamte Pipeline – Entwicklung, Test und Produktion – oder über den Workflow verschiedener Teams hinweg zu kopieren. Dadurch wird das Problem deutlich reduziert.
Messung:
Diagramme sind so konzipiert, dass sie mit der Kubernetes-Clusterarchitektur übereinstimmen, was die Skalierbarkeit erleichtert.
Einfache Auszahlung:
Helm verwaltet alle Releases und macht es einfach, Änderungen zu erhalten, wenn Probleme auftreten.
GitOps nutzt sowohl Helm als auch Flux
Helm kann komplexe Releases verwalten und die Dinge beim Messen einfach halten. Da die Änderungen jedoch schrittweise eingeführt werden, benötigt Helm zusätzliche Tools, um den Kubernetes-Cluster zu aktualisieren.
Flux ist eine hervorragende Fülllösung für Helm, da es als Brücke zwischen Helm und allen wichtigen Git-Repositories fungiert, von denen aus die gesamten Kubernetes-Cluster- und Utility-Spezifikationen definiert werden.
Flux ist eine Bereitstellungsautomatisierungslösung, die auf dem GitOps-Modell basiert, das Git zum Ausgangspunkt und zur eigentlichen Quelle aller Änderungen macht. Mit Flux können Sie die Konsistenz zwischen Code-Repositorys und Kubernetes-Clustern aufrechterhalten und die Sortierung automatisieren, wenn Codeänderungen eingeführt werden.
Kurz gesagt, Flux Helm automatisiert Chart-Releases, indem es Charts von Git mit dem Kubernetes-Cluster synchronisiert.
Wie funktioniert Flux mit Helm?
Um Flux als GitOps-Operator zu verwenden, speichern Sie alle Helm-Diagramme zusammen mit ihren YAML-Dateien und benutzerdefinierten Kubernetes-Ressourcen im Git-Repository. Außerdem legen Sie unveränderliche Images dieser Quellen in einer Containerregistrierung ab.
Sobald Sie mit der „Pull“-Anfrage eine Änderung an Git vorgenommen haben, überprüft Flux Ihr Repository und stellt die erforderlichen Ressourcen bereit. Die Änderungen werden dann in den Produktionscluster eingearbeitet. Dies vereinfacht natürlich den Prozess, und Sie können noch viel mehr tun – wie z. B. Rauchtests oder die Genehmigung von SRE-spezifischen Änderungen – aber lassen Sie es uns vorerst einfach halten.
Wenn Sie mehr darüber erfahren möchten, wie Flux 2 und Helm zusammenarbeiten, um Geschwindigkeit und Zuverlässigkeit zu erhöhen und gleichzeitig Leerlaufzeiten zu reduzieren, sehen Sie sich diesen YouTube-Vortrag von Scott Rigby an.
Fazit
Helm reduziert die Schwierigkeit beim Ausführen von Kubernetes erheblich. Es fügt der GitOps-Pipeline mit dem Konzept von Diagrammen oder Vorlagen einen großen Mehrwert hinzu. Abgesehen davon gibt es neben der Vorlagenerstellung noch andere Anforderungen, nämlich die Automatisierung der End-to-End-Bereitstellung. Hier wird ein Tool wie Flux (oder Weave GitOps, integriert in Flux) benötigt, um das Ruder zu verwenden. Darüber hinaus stellt die Magalix-ähnliche Lösung sicher, dass Helm-Releases kompatibel und sicher sind.
Weave KitApps ist eine Continuous-Delivery-Lösung, mit der Sie Kubernetes in großem Umfang verwalten können. Dies macht es für jedes Unternehmen einfach, GitOps einzuführen und zu implementieren. Weave GitOps vereinfacht den funktionalen Cluster mit Befehlen wie „gitops install“, um GitOps zu aktivieren, und „gitops add app“, um sie Ihrer Anwendung hinzuzufügen. Diese Befehle abstrahieren die zugrunde liegenden komplexen Aufgaben, die ansonsten mit der Bereitstellungsautomatisierung verbunden sind. Weave GitOps vereint die gesamte GitOps-Pipeline, einschließlich Helm, Flux, Magalix und mehr – damit Sie ohne Zeitverlust mit GitOps beginnen können.
wie-man-amazon-verkäufer-in-einfachen-schritten-wird
digitales-marketing-für-gastronomie