11 Tools, die Kubernetes besser machen

11 Tools, die Kubernetes besser machen

Nicht alle Serverplattformen, selbst die leistungsstärksten und skalierbarsten, erfüllen so wie sie sind alle Anforderungen. Auch wenn Kubernetes alleine großartig funktioniert, fehlen möglicherweise die richtigen Teile, um vollständig zu sein. Sie werden immer einen Sonderfall finden, der Ihre Anforderungen ignoriert oder bei dem Kubernetes bei einer Standardinstallation nicht funktioniert, z. B. Datenbankunterstützung oder CD-Betrieb.

Hier erscheinen Add-ons, Erweiterungen und andere Extras für diesen Container-Orchestrator, unterstützt von der breitesten Community. In diesem Artikel stellen wir die 11 besten Dinge vor, die wir gefunden haben. Wir selbst in Southbridge Sie sind sehr interessant, und wir planen, sie praktisch zu behandeln – sie in Schrauben und Muttern zu zerlegen und zu sehen, was drin ist. Einige von ihnen ergänzen jeden Kubernetes-Cluster perfekt, während andere bei der Lösung bestimmter Aufgaben helfen, die in der typischen Kubernetes-Distribution nicht implementiert sind.

Gatekeeper: Richtlinienverwaltung

Projekt Richtlinien-Agent öffnen (OPA) bietet die Möglichkeit, Richtlinien auf Cloud-Anwendungsstapeln in Kubernetes zu erstellen, vom Eingang bis zum Service Mesh. Pförtner Bietet Kubernetes die native Möglichkeit, Richtlinien im Cluster automatisch durchzusetzen, und bietet außerdem eine Überprüfung auf alle Ereignisse oder Ressourcen, die gegen die Richtlinie verstoßen. All dies wird vom relativ neuen Kubernetes-Mechanismus, dem Webhooks-Zulassungsmanager, erledigt, der ausgelöst wird, wenn sich Ressourcen ändern. Mit Gatekeeper werden OPA-Richtlinien zu einem weiteren Teil des Status Ihres Kubernetes-Clusters, ohne dass eine ständige Überwachung erforderlich ist.

Schwerkraft: Tragbare Kubernetes-Cluster

Wenn Sie eine Anwendung auf Kubernetes ausrollen möchten, verfügen viele Anwendungen über ein Helm-Chart, das diesen Prozess leitet und automatisiert. Was aber, wenn Sie Ihren Kubernetes-Cluster „wie er ist“ nehmen und woanders ausrollen möchten?

Schwerkraft erstellt Snapshots von Kubernetes-Clustern, ihrer Registrierung für Container-Images sowie von laufenden Anwendungen, die als „Anwendungspakete“ bezeichnet werden. Ein solches Paket, das eine reguläre Datei ist .tar, kann den Cluster überall dort replizieren, wo Kubernetes ausgeführt werden kann.

Gravity überprüft außerdem, ob sich die Zielinfrastruktur genauso verhält wie die Quellinfrastruktur und ob die Kubernetes-Umgebung auf dem Ziel verfügbar ist. Die kostenpflichtige Version von Gravity bietet außerdem Sicherheitsfunktionen, darunter RBAC und die Möglichkeit, Sicherheitseinstellungen über verschiedene Cluster-Bereitstellungen hinweg zu synchronisieren.

Die neueste Hauptversion, Gravity 7, kann ein Gravity-Image in einen vorhandenen Kubernetes-Cluster verschieben, anstatt aus dem Image einen völlig neuen Cluster zu erstellen. Gravity 7 kann auch mit installierten Clustern funktionieren, ohne das Gravity-Image zu verwenden. Gravity unterstützt auch SELinux und arbeitet nativ mit dem Teleport SSH-Gateway.

Kaniko: Container in einem Kubernetes-Cluster erstellen

Die meisten Container-Images werden auf Systemen außerhalb des Container-Stacks erstellt. Manchmal müssen Sie das Image jedoch in einem Stapel von Containern erstellen, beispielsweise irgendwo in einem laufenden Container oder in einem Kubernetes-Cluster.

Kaniko erstellt Container innerhalb einer Containerumgebung, ohne jedoch auf einen Containerisierungsdienst wie Docker angewiesen zu sein. Stattdessen extrahiert Kaniko das Dateisystem aus dem Basis-Image, führt alle User-Space-Build-Befehle auf dem extrahierten Dateisystem aus und erstellt nach jedem Befehl einen Snapshot des Dateisystems.

Hinweis: Kaniko ist derzeit (Mai 2020, ca. Übersetzer) kann keine Windows-Container erstellen.

Kubecost: Kubernetes-Startkostenoptionen

Die meisten Verwaltungstools von Kubernetes konzentrieren sich auf Benutzerfreundlichkeit, Überwachung, Verständnis des Verhaltens innerhalb eines Pods usw. Aber wie sieht es mit der Überwachung der Kosten – in Rubel und Kopeken – im Zusammenhang mit der Einführung von Kubernetes aus?

Kubekosten verarbeitet Kubernetes-Parameter in Echtzeit, was zu aktuellen Kosteninformationen aus laufenden Clustern bei großen Cloud-Anbietern führt, die in einem Panel mit monatlichen Kosten pro Cluster angezeigt werden. Die Preise für RAM, CPU-Zeit, GPU und Festplatten-Subsystem werden nach Kubernetes-Komponenten (Container, Pod, Service usw.) aufgeschlüsselt.

Kubecost verfolgt auch die Kosten von Nicht-Cluster-Ressourcen wie Amazon S3-Buckets, obwohl dies durch AWS begrenzt ist. Die Kostendaten können an Prometheus gesendet werden, sodass Sie damit das Verhalten des Clusters programmgesteuert ändern können.

Die Nutzung von Kubecost ist kostenlos, wenn Sie über ausreichend Protokolldaten für 15 Tage verfügen. Für zusätzliche Funktionen beginnen die Preise bei 199 US-Dollar pro Monat für die Überwachung von 50 Knoten.

KubeDB: Ausführen von Kampfdatenbanken in Kubernetes

Auch Datenbanken lassen sich in Kubernetes nur schwer spektakulär ausführen. Sie finden Kubernetes-Operatoren für MySQL, PostgreSQL, MongoDB und Redis, aber sie alle haben Nachteile. Außerdem behebt der typische Kubernetes-Funktionsumfang die meisten der definierten Datenbankprobleme nicht direkt.

KubeDB hilft Ihnen bei der Erstellung Ihrer Kubernetes-Anweisungen für die Datenbankverwaltung. Das Ausführen von Backups, Klonen, Überwachen, Snapshots und deklarative Datenbankerstellung sind seine Bestandteile. Beachten Sie, dass die Funktionsunterstützung datenbankabhängig ist. Das Erstellen eines Clusters funktioniert beispielsweise für PostgreSQL, nicht jedoch für MySQL (bereits gibt es, wie zu Recht betont dnbstd, ca. Übersetzer).

Kube-Monkey: Chaos Monkey für Kubernetes

Als fehlerfreiste Methode des Stresstests gelten zufällige Ausfälle. Diese Theorie ist das Herzstück von Netflix‘ Chaos Monkey, einem chaotischen Engineering-Tool, das virtuelle Maschinen und Produktionsumgebungscontainer nach dem Zufallsprinzip herunterfährt, um Entwicklern „Anreize“ zu geben, widerstandsfähigere Systeme zu bauen. Kube-Affe - Implementierung derselben Grundtheorie des Stresstests für Kubernetes-Cluster. Es funktioniert durch zufälliges Abschalten von Modulen im Cluster, die Sie festlegen, und kann auch so eingestellt werden, dass es in einem bestimmten Zeitintervall ausgeführt wird.

Kubernetes Ingress Controller für AWS

Kubernetes stellt einen externen Lastenausgleich und Cluster-Netzwerkdienste über einen Dienst namens bereit Eintritt AWS bietet Lastausgleichsfunktionen, bündelt diese jedoch nicht automatisch mit denselben Kubernetes-Funktionen. Kubernetes Ingress Controller für AWS schließt diese Lücke.

Es verwaltet automatisch AWS-Ressourcen für jeden Ingress im Cluster, erstellt Load Balancer für neue Ingress-Ressourcen und löscht Load Balancer, wenn Ressourcen entfernt werden. Es verwendet CloudFormation, um sicherzustellen, dass der Clusterstatus konsistent bleibt. Es unterstützt auch CloudWatch Alarm-Einstellungen und verwaltet automatisch andere im Cluster verwendete Elemente, wie SSL-Zertifikate und EC2 Auto Scaling-Gruppen.

Kubespray: Automatische Installation von Kubernetes

Würfelspray automatisiert die Installation eines produktionsbereiten Kubernetes-Clusters, von der Installation auf Hardware-Servern bis hin zu großen öffentlichen Clouds. Es verwendet Ansible (Vagrant optional), um die Bereitstellung zu starten und einen hochverfügbaren Cluster von Grund auf mit Netzwerk-Add-ons Ihrer Wahl (wie Flannel, Calico usw.) auf einer beliebten Linux-Distribution Ihrer Wahl zu erstellen, wenn diese auf Hardware-Servern installiert wird.

Skaffold: Iterative Entwicklung für Kubernetes

Gerüst – eines der Google-Tools zum Organisieren von Anwendungs-CDs in Kubernetes. Sobald Sie Änderungen am Quellcode vornehmen, erkennt Gerüst dies automatisch, beginnt mit der Erstellung und Bereitstellung und warnt Sie, wenn Fehler auftreten. Skaffold läuft vollständig auf der Client-Seite, daher kann es bei der Installation oder Aktualisierung zu kleinen Nuancen kommen. Es kann mit vorhandenen CICD-Pipelines verwendet werden und mit einigen externen Build-Tools, hauptsächlich Bazel von Google, interagieren.

Teresa: Das einfachste PaaS auf Kubernetes

Teresa ist ein Anwendungsbereitstellungssystem, das ein einfaches PaaS auf Kubernetes ausführt. Team-Benutzer können ihre eigenen Anwendungen bereitstellen und verwalten. Dies macht die Sache für Leute, die dieser Anwendung vertrauen und sich nicht mit Kubernetes und all seinen Komplexitäten auseinandersetzen wollen, etwas einfacher.

Neigung: Container-Updates auf Kubernetes-Cluster streamen

Neigung, entwickelt von Windmill Engineering, überwacht Änderungen an verschiedenen Docker-Dateien und stellt dann nach und nach die entsprechenden Container im Kubernetes-Cluster bereit. Im Wesentlichen ermöglicht es Ihnen, den Produktionscluster in Echtzeit zu aktualisieren, indem Sie einfach die Docker-Dateien aktualisieren. Tilt baut innerhalb des Clusters auf, der Quellcode ist alles, was geändert werden muss. Sie können auch einen Schnappschuss des Clusterstatus erstellen und Fehlerbedingungen direkt von Tilt aus erfassen, um sie zum Debuggen mit Teammitgliedern zu teilen.

PS Alle diese Tools haben wir wiederholt in Southbridge mit unseren neugierigen Händen erforscht. Reale Praktiken bereits (hoffentlich!) bei Offline-Intensivveranstaltungen im Februar vorzustellen. Kubernetes-Basis 8.–10. Februar 2021. Und Kubernetes Mega 12.–14. Februar. Ehrlich gesagt haben wir auch die warme und energiegeladene Atmosphäre des Offline-Lernens vermisst. So fortschrittlich die Technologien auch sein mögen, sie werden die lebendige menschliche Kommunikation und die besondere Atmosphäre, in der Gleichgesinnte zusammenkommen, nicht ersetzen.

Source: habr.com

Kommentar hinzufügen