13 Tools, die Kubernetes besser machen

Nutzen Sie die Vorteile der folgenden Tools für Kubernetes, um Anwendungsdefinitionen zu vereinfachen, Cluster zu migrieren, Cloud-Bereitstellungen zu erleichtern und vieles mehr. [...]

(c) pixabay.com

Nur wenige Computing-Plattformen – selbst solche mit großer Leistung und Skalierung – erfüllen von Haus aus alle Anforderungen. Auch wenn Kubernetes bereits nützlich ist, ist es noch lange nicht vollständig. Es lässt sich immer ein Anwendungsfall oder ein Bedürfnis finden, bei dem die Standardfunktionen von Kubernetes nicht ausreichen (z. B. Datenbankunterstützung) oder einfach ignoriert werden (z. B. kontinuierliche Bereitstellung).

Hier kommt die breite Kubernetes-Community ins Spiel, die Add-ons, Erweiterungen und Bonus-Goodies für das Container-Orchestrierungs-Framework bereitstellt. Hier sind 11 der besten Kubernetes Tools, die wir gefunden haben. Einige ergänzen jeden Kubernetes-Cluster, während andere spezielle Anforderungen erfüllen, die Kubernetes selbst nicht abdeckt.

Clusterpedia: Verwalten von Ressourcen für mehrere Kubernetes-Cluster

Das Finden und Verwalten von Ressourcen in einem einzelnen KubernetesCluster ist (meistens) ein lösbares Problem. Aber wie sieht es mit der Verwaltung von Ressourcen in mehreren Clustern aus? Mit Clusterpedia können Sie nach Ressourcen in einer Gruppe von Kubernetes-Clustern suchen und bei Bedarf verschiedene Versionen von Ressourcen in diesen Clustern synchronisieren. Die Synchronisierung kann entweder manuell oder automatisch auf der Grundlage des Zustands des Clusters angehalten oder wiederaufgenommen werden. Clusterpedia verwaltet jedoch nicht die Netzwerkkonnektivität zwischen Clustern; in der Dokumentation wird empfohlen, dafür ein Tool wie Submariner zu verwenden.

Gatekeeper: Kubernetes-Richtlinienkontrollen

Das Open Policy Agent-Projekt (OPA) bietet eine Möglichkeit, Richtlinien für Cloud-native Anwendungsstapel zu erstellen, vom Ingress über Service-Mesh-Komponenten bis hin zu Kubernetes. Gatekeeper bietet eine Kubernetes-native Möglichkeit, OPA-Richtlinien in einem Cluster automatisch durchzusetzen und auf Ereignisse oder Ressourcen zu prüfen, die gegen die Richtlinien verstoßen. All dies wird über einen relativ neuen Mechanismus in Kubernetes abgewickelt, den Admission Controller Webhooks, die bei Änderungen an Ressourcen ausgelöst werden. Mit Gatekeeper können OPA-Richtlinien als ein weiterer Teil des definierten Zustands Ihres Kubernetes-Clusters verwaltet werden, ohne dass eine ständige Überwachung erforderlich ist.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Helmify: Exportieren von Kubernetes-YAML-Dateien in Helm-Diagramme

Helm-Diagramme machen es einfach, die Definition einer Kubernetes-Ressource oder eines Anwendungseinsatzes von jemand anderem zu übernehmen und sie zu verwenden, um diese Ressource oder Anwendung selbst einzusetzen. Was aber, wenn Sie Ihre eigenen Kubernetes-YAML-Definitionen in Helm-Diagramme übersetzen möchten, die dann von anderen genutzt werden können?

Helmify generiert Helm-Diagramme aus gängigen Kubernetes-Definitionsobjekten – einer YAML-Datei, einem Verzeichnis von YAML-Dateien oder der Ausgabe von Kustomize. Helmify kann auch in Kubebuilder integriert werden, um Diagramme für von diesem Tool generierte Operatoren zu erstellen. Beispiele, einschließlich Eingabe und Ausgabe, sind im Projekt-Repo enthalten.

Kaniko: Erstellen von Containern in einem Kubernetes-Cluster

Die meisten Container-Images werden auf einem System außerhalb eines Container-Stacks erstellt. Manchmal möchte man jedoch den Build-Prozess innerhalb eines Container-Stacks durchführen – z.B. innerhalb eines laufenden Containers oder irgendwo in einem KubernetesCluster.

Kaniko führt Container-Builds innerhalb einer Container-Umgebung durch, ohne sich dabei jedoch auf einen Container-Daemon wie Docker zu verlassen, der die Arbeit erledigt. Stattdessen extrahiert Kaniko das Dateisystem aus dem Basis-Image und führt dann alle Build-Befehle im Userspace auf dem extrahierten Dateisystem aus, wobei nach jedem Befehl ein Snapshot des Dateisystems erstellt wird.

Beachten Sie, dass Kaniko derzeit keine Windows-Container bauen kann.

Kubecost: Kostenmetriken für den Betrieb von Kubernetes

Die meisten Kubernetes-Verwaltungstools konzentrieren sich auf Benutzerfreundlichkeit, Überwachung, Einblicke in das Verhalten von Pods und Ähnliches. Aber wie sieht es mit der Überwachung der Kosten aus, die mit dem Betrieb von Kubernetes verbunden sind, also mit den Kosten in Euro und Cent?

Kubecost verwendet Echtzeit-Kubernetes-Metriken und reale Kosteninformationen, die aus dem Betrieb von Clustern bei den wichtigsten Cloud-Anbietern abgeleitet wurden, um eine Dashboard-Ansicht der monatlichen Kosten für jeden Cluster-Einsatz zu erstellen. Die Kosten für Arbeitsspeicher, CPU, GPU und Storage werden nach Kubernetes-Komponenten (Container, Pod, Service, Deployment usw.) aufgeschlüsselt.

Kubecost kann auch die Kosten für „clusterfremde“ Ressourcen, wie z. B. Amazon S3-Buckets, nachverfolgen, obwohl dies derzeit auf AWS beschränkt ist. Die Kostendaten können sogar an Prometheus zurückgegeben werden, so dass Sie die Daten verwenden können, um das Verhalten des Clusters programmatisch zu ändern.

Die Nutzung von Kubecost ist kostenlos, sofern Sie nur 15 Tage lang Protokolle aufbewahren müssen. Für erweiterte Funktionen beginnen die Preise bei 199 US-Dollar pro Monat für die Überwachung von 50 Knoten.

KubeDB: Ausführen von Produktionsdatenbanken in Kubernetes

Es war schon immer schwierig, Datenbanken elegant in Kubernetes zu betreiben. Es gibt zwar Kubernetes-Operatoren für MySQL, PostgreSQL, MongoDB und Redis, aber es gibt noch viele Lücken. Und die nativen Kubernetes-Funktionen gehen viele der spezifischen Probleme mit Datenbanken nicht direkt an.

Mit KubeDB können Sie Ihre eigenen Kubernetes-Operatoren für die Verwaltung von Datenbanken erstellen. Das Ausführen von Backups, Klonen, Überwachen, Snapshotten und das deklarative Erstellen von Datenbanken sind Teil des Mixes. Beachten Sie, dass die unterstützten Funktionen je nach Datenbank variieren. Zum Beispiel ist Clustering für PostgreSQL verfügbar, aber nicht für MySQL.

Kube-monkey: Chaos Monkey für Kubernetes

Eine todsichere Methode zum Stresstest eines Systems besteht darin, Dinge willkürlich zu zerstören. Das ist die Theorie hinter dem Chaos Monkey von Netflix, einem Chaos-Engineering-Tool, das virtuelle Maschinen und Container, die in der Produktion laufen, nach dem Zufallsprinzip beendet, um die Entwickler zu ermutigen“, widerstandsfähigere Systeme zu bauen. Kube-monkey ist eine Umsetzung der gleichen Grundidee für Stresstests von KubernetesClustern. Es funktioniert durch das zufällige Abschalten von Pods in einem von Ihnen festgelegten Cluster und kann so eingestellt werden, dass es innerhalb bestimmter Zeitfenster funktioniert.

Kubernetes-Ingress-Controller für AWS

Kubernetes bietet externe Lastausgleichs- und Netzwerkdienste für einen Cluster über einen Dienst namens Ingress. Amazon Web Services bietet Funktionen für den Lastausgleich, koppelt diese Dienste aber nicht automatisch an die Kubernetes-Einrichtungen für denselben. Der Kubernetes Ingress Controller für AWS schließt diese Lücke.

Der Kubernetes Ingress Controller für AWS verwaltet AWS-Ressourcen für jedes Ingress-Objekt in einem Cluster automatisch, indem er Load Balancer für neue Ingress-Ressourcen erstellt und Load Balancer für entfernte Ressourcen löscht. Er verwendet AWS CloudFormation, um sicherzustellen, dass der Cluster-Status konsistent bleibt. Es unterstützt auch CloudWatch Alarm-Konfigurationen und verwaltet automatisch andere im Cluster verwendete Elemente wie SSL-Zertifikate und EC2 Auto Scaling Groups.

Kubespray: Automatisierte Bereitstellung für Kubernetes

Kubespray automatisiert die Bereitstellung eines produktionsbereiten KubernetesClusters in fast jeder Umgebung, von Bare Metal bis hin zu den großen öffentlichen Clouds. Es verwendet Ansible (optional Vagrant) für die Bereitstellung und erstellt einen hochverfügbaren Cluster mit einem Netzwerk-Plug-in Ihrer Wahl (z. B. Flannel, Calico, Weave usw.) und Ihrer Wahl unter vielen gängigen Linux-Distributionen für Bare-Metal-Installationen.

Kwatch: Zustandsänderungen für Kubernetes melden

Wenn ein KubernetesCluster den Bach runtergeht, wollen Sie das so schnell wie möglich wissen. Kwatch erkennt alle Änderungen am Cluster-Status (einschließlich Anwendungsabstürzen) und veröffentlicht die Ergebnisse in Echtzeit an beliebte Kommunikationsdienste: Slack, Discord, Microsoft Teams, PagerDuty, Telegram, Mattermost, Opsgenie. Fast jeder Kommunikationsdienst, der über eine API oder einen Webhook verfügt, kann ebenfalls hinzugefügt werden.

Skaffold: Iterative Entwicklung für Kubernetes

Skaffold ist eines von Googles eigenen Tools für Kubernetes, eine Möglichkeit, kontinuierliches Deployment für Kubernetes-Anwendungen durchzuführen. Wenn Sie Änderungen an Ihrem Quellcode vornehmen, erkennt Skaffold diese automatisch, stößt den Build- und Deployment-Prozess an und warnt Sie, wenn Fehler auftreten. Skaffold läuft vollständig auf der Client-Seite, so dass der Aufwand für die Einrichtung und Wartung gering ist. Es kann in einer bestehenden CI/CD-Pipeline verwendet werden und lässt sich mit einigen externen Build-Tools integrieren, vor allem mit dem Google-eigenen Bazel.

Teresa: Eine einfache PaaS auf Kubernetes

Teresa ist ein Anwendungsbereitstellungssystem, das als einfache PaaS auf Kubernetes läuft. Benutzer, die in Teams organisiert sind, können Anwendungen bereitstellen und verwalten, die ihnen gehören. Dies erleichtert die Arbeit von Personen, die mit einer bestimmten Anwendung vertraut sind, ohne sich mit Kubernetes und all seinen Komplexitäten befassen zu müssen.

Tilt: Container-Updates auf Kubernetes-Cluster übertragen

Das von Windmill Engineering entwickelte Tilt überwacht Änderungen an Dockerdateien und überträgt diese Änderungen schrittweise auf die entsprechenden Container in einem KubernetesCluster. Im Wesentlichen ermöglicht Tilt Entwicklern, einen Live-Cluster in Echtzeit zu aktualisieren, indem sie einfach ein Dockerfile aktualisieren. Tilt führt den Build innerhalb des Clusters durch; die einzigen Änderungen, die übertragen werden, sind der Quellcode. Sie können sogar einen Snapshot des Cluster-Status und der Fehlerbedingungen von einem Tilt-Status erstellen, um ihn mit Teammitgliedern zur Fehlersuche zu teilen.

*Serdar Yegulalp ist Senior-Autor bei InfoWorld und konzentriert sich auf maschinelles Lernen, Containerisierung, Devops, das Python-Ökosystem und regelmäßige Reviews.


Mehr Artikel

Be the first to comment

Leave a Reply

Your email address will not be published.


*