Dieser Artikel präsentiert eine Auswahl an exzellenten Werkzeugen, die in Verbindung mit Kubernetes dessen Funktionalität erheblich erweitern können.
In der DevOps-Welt ist die Bedeutung effektiver Tools zur Automatisierung von Prozessen und zur Reduzierung manueller Aufgaben unerlässlich. Eine Vielzahl von DevOps-Tools stehen für verschiedene Phasen und Funktionalitäten zur Verfügung.
Kubernetes ist ein Kernbestandteil der DevOps-Landschaft, insbesondere wenn es um das Containerisieren und Ausführen von Anwendungen geht. Es existiert eine breite Palette an Werkzeugen, die nahtlos mit Kubernetes interagieren, um dessen Fähigkeiten zu erweitern, wie z.B. in den Bereichen Management, Sicherheit, Visualisierung und Überwachung von Kubernetes-Clustern.
Im Folgenden finden Sie eine Liste solcher wertvollen Tools, die Kubernetes in seiner Leistung verstärken.
Legen wir los!
Helm
Helm ist ein Paketmanager für Kubernetes, der das Verwalten von Anwendungen und Diensten vereinfacht. Er ermöglicht es, hochgradig wiederverwendbare Software in typischen Kubernetes-Umgebungen leicht zu installieren. Mit Helm können Sie Software, die für Kubernetes entwickelt wurde, entdecken, teilen und nutzen.
Helm verwendet sogenannte Helm-Charts, um komplexe Kubernetes-Anwendungen zu definieren, zu installieren und zu aktualisieren.
Hauptmerkmale von Helm:
- Verwaltet die Komplexität von Kubernetes-Anwendungen mithilfe von Charts.
- Ermöglicht einfache Updates durch Upgrades und benutzerdefinierte Hooks.
- Charts lassen sich leicht auf öffentlichen oder privaten Servern verteilen.
- Ermöglicht einfache Rollbacks mit einem einzigen Befehl.
- Steigert die Produktivität von Entwicklern und verbessert die Betriebsbereitschaft.
Flagger
Flagger ist ein Operator für progressive Auslieferung in Kubernetes.
Er automatisiert Canary-Deployments mithilfe von Service Meshes wie Istio, App Mesh, Nginx, Linkerd, Contour, Gloo und Skipper-Routing, um den Traffic zu verwalten, sowie Prometheus für die Analyse. Bei einem Canary-Deployment wird eine neue Version zunächst für eine kleine Benutzergruppe freigegeben, getestet und erst bei erfolgreichem Test für alle Benutzer ausgerollt.
Flagger nutzt das Service Mesh Ihres Clusters, um den Traffic zwischen verschiedenen Deployment-Versionen zu lenken und misst dabei Leistungsindikatoren, wie durchschnittliche Anfragedauer, HTTP-Erfolgsrate und Pod-Zustand.
Flagger unterstützt verschiedene Deployment-Strategien, wie Canary-Releases, A/B-Tests und Blue/Green-Deployments, sowie automatisierte Analysen, Beförderungen und Rollbacks.
Kubewatch
Kubewatch ist ein Open-Source-Kubernetes-Watcher, der Benachrichtigungen über Slack-Kanäle sendet.
Dieses in Go entwickelte Tool von Bitnami Labs überwacht Kubernetes-Ressourcen und benachrichtigt bei Änderungen.
Kubewatch kann über kubectl oder Helm-Charts installiert werden. Es ist einfach zu bedienen und unterstützt neben Slack auch HipChat, Mattermost, Flock, Webhooks und SMTP.
Die zu überwachenden Kubernetes-Ressourcen können in der ConfigMap-Datei durch die Einstellung „true“ oder „false“ definiert werden. Sobald Kubewatch konfiguriert und als Pod gestartet ist, werden Benachrichtigungen über Kubernetes-Ereignisse versendet.
Gitkube
Gitkube ist ein Werkzeug, das Docker-Images durch `git push` auf Kubernetes erstellt und bereitstellt. Es besteht aus drei Komponenten: Remote, Gitkube-Controller und Gitkubed. Der Remote besteht aus benutzerdefinierten Ressourcen, die vom Gitkube-Controller verwaltet werden. Der Gitkube-Controller leitet die Änderungen an Gitkubed weiter, welches dann das Docker-Image erstellt und bereitstellt.
Funktionen von Gitkube:
- Einfache Plug-and-Play Installation.
- Bietet rollenbasierte Zugriffskontrolle zur Sicherheit.
- Einfache Authentifizierung mit einem öffentlichen Schlüssel.
- Unterstützt Namespaces für Mandantenfähigkeit.
- Benötigt außer kubectl und git keine zusätzlichen Abhängigkeiten.
kube-state-metrics
kube-state-metrics ist ein Dienst, der Metriken zu Zustandsobjekten generiert, indem er den Kubernetes-API-Server abhört. Es dient zur Überwachung des Zustands von Objekten wie Knoten, Pods, Namespaces und Deployments und liefert unverarbeitete Daten aus der Kubernetes-API.
Folgende Informationen werden durch kube-state-metrics bereitgestellt:
- Cron-Jobs und Job-Status
- Status der Pods (bereit, aktiv, etc.)
- Ressourcenanfragen und deren Umfang
- Knotenkapazität und -Status
- Spezifikationen von ReplicaSets
Kamus
Kamus ist ein Open-Source-GitOps-Tool zur Ver- und Entschlüsselung von Secrets für Kubernetes-Anwendungen. Die von Kamus verschlüsselten Secrets können nur von Anwendungen im Kubernetes-Cluster entschlüsselt werden. Kamus nutzt AES, Google Cloud KMS und Azure KeyVault zur Verschlüsselung. Kamus kann mit der Steuerungs-CRD gestartet werden.
Kamus enthält zwei Hilfsprogramme: Kamus CLI und Kamus Init Container. Die Kamus CLI dient zur Integration mit der Verschlüsselungs-API und der Kamus-Init-Container zur Integration mit der Entschlüsselungs-API.
Kubernetes Plain Secrets sind nicht verschlüsselt, sondern lediglich base64-kodiert. Eine Speicherung in dieser Form auf Git ist unsicher, da jeder mit Zugriff auf das Repository die Secrets einsehen und nutzen kann. Daher ist eine Ver-/Entschlüsselungslösung wie Kamus erforderlich. Es bietet außerdem ein Bedrohungsmodell, um Geheimnisse zu schützen.
Untrak
Untrak ist ein Open-Source-Tool, das in Kubernetes genutzt wird, um nicht nachverfolgte Ressourcen zu finden und zu entfernen.
Wenn Manifeste mithilfe von `kubectl apply` oder `helm template` in die CI/CD-Pipeline integriert werden, verliert Kubernetes die Übersicht darüber, wann ein Objekt aus dem Repository gelöscht wird. Gelöschte Objekte werden nicht mehr im Bereitstellungsprozess erfasst, verbleiben aber im Kubernetes-Cluster.
Untrak verwendet eine Konfigurationsdatei `untrak.yaml`, um Ressourcen zu identifizieren, die nicht mehr Teil der Quellcodeverwaltung sind.
Weave Scope
Weave Scope dient der Visualisierung, Überwachung und Fehlerbehebung von Docker und Kubernetes.
Es bietet eine Übersicht Ihrer containerisierten Anwendung und Infrastruktur, um Probleme leicht identifizieren und diagnostizieren zu können.
Microservice-Anwendungen in Docker-Containern sind dynamisch und schwer zu überwachen. Weave Scope hilft bei der Behebung von Speicherlecks, der Kontrolle des CPU-Verbrauchs und der Visualisierung von Netzwerkengpässen.
Funktionen von Weave Scope:
- Echtzeitüberwachung Ihrer Docker-Container
- Einfache Navigation zwischen Prozessen in Containern
- Anzeige der CPU- und Speicherauslastung nach Host oder Dienst
- Neustart, Stopp oder Pause von Containern mit der CLI
- Unterstützung benutzerdefinierter Plugins für weitere Details
Kubernetes Dashboard
Kubernetes Dashboard ist eine Web-Oberfläche von Kubernetes zur Bereitstellung, Fehlerbehebung und Verwaltung von containerisierten Anwendungen. Es bietet umfassende Informationen zu Clustern, wie z.B. Details zu Knoten, Namespaces, Rollen und Workloads.
Das Kubernetes Dashboard kann mit Helm-Charts oder mit einem einfachen kubectl-Befehl installiert werden:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
Kops
Kops (Kubernetes Operations) ist ein Open-Source-Projekt zur Erstellung produktionsreifer Kubernetes-Cluster auf AWS und GCE.
Das Erstellen und Verwalten kleiner Kubernetes-Cluster ist einfach, wird aber bei der Skalierung zunehmend komplex. Kops unterstützt bei der Bewältigung dieser Komplexität durch einen konfigurationsgesteuerten Ansatz, der den Cluster stets aktuell und sicher hält.
Kops bietet auch verschiedene Netzwerk-Backends an, die es ermöglichen, verschiedene Arten von Clustern einzurichten.
cAdvisor
cAdvisor ist ein Open-Source-Tool zur Containerüberwachung, das Leistungsmerkmale und Ressourcennutzung von Containern erfasst.
Es arbeitet auf Knotenebene, erkennt alle Container auf einem Knoten automatisch und sammelt Statistiken zu Arbeitsspeicher, Dateisystem, CPU und Netzwerk. Eine Web-Oberfläche zeigt die Live-Daten aller Container im Cluster an.
Um cAdvisor zu nutzen, starten Sie das Docker-Image `google/cadvisor` und greifen über einen Webbrowser unter `https://localhost:8080` darauf zu.
Kubespray
Kubespray ist ein Tool auf der Basis von Ansible Playbooks zur Verwaltung von Kubernetes-Clustern.
Mit Kubespray lassen sich Cluster schnell bereitstellen und Parameter wie Bereitstellungsmodi, Netzwerk-Plugins, DNS-Konfiguration und Zertifikatgenerierung anpassen.
Ein einfaches Ansible-Playbook genügt, um einen Cluster betriebsbereit zu machen. Die Skalierung oder Aktualisierung eines Kubernetes-Clusters wird dadurch vereinfacht.
K9s
K9s ist ein Terminal-basiertes Open-Source-Dashboard, das alle Funktionen einer Kubernetes Web-Oberfläche bietet. Es dient zur Navigation, Beobachtung und Verwaltung von Anwendungen im Kubernetes-Cluster.
Funktionen von K9s:
- Echtzeitverfolgung des Clusters.
- Anpassbare Anzeige pro Ressource.
- Erweiterte Einblicke in Cluster-Ressourcenprobleme.
- Unterstützung rollenbasierter Zugriffskontrolle.
- Integrierte Benchmarks zur Validierung der Ressourcenleistung.
Kubetail
Kubetail ist ein Bash-Skript, das Protokolle von mehreren Pods in einem Stream zusammenführt.
Es ist sehr praktisch für das Debugging.
Die neueste Kubetail-Version bietet Hervorhebungs- und Filterfunktionen, die eine farbliche Markierung von Protokollen ermöglichen. Kubetail kann mit Homebrew einfach installiert werden. Es können Standardwerte für Umgebungsvariablen wie `KUBETAIL_NAMESPACE`, `KUBETAIL_TAIL` oder `KUBETAIL_SKIP_COLORS` festgelegt werden.
PowerfulSeal
PowerfulSeal ist ein Open-Source-Chaos-Engineering-Tool, geschrieben in Python für Kubernetes-Cluster.
Chaos Engineering zielt darauf ab, das Vertrauen in die Fähigkeit des Systems zu gewinnen, mit Produktionsproblemen umzugehen. Durch das gezielte Hinzufügen von Fehlern in den Kubernetes-Cluster können Probleme frühzeitig erkannt werden.
Inspiriert von Netflix Chaos Monkey, verbessert PowerfulSeal die Resilienz von Kubernetes, indem bewusst Fehler erzeugt werden, um die Systemreaktion zu testen.
PowerfulSeal arbeitet in drei Modi: Autonom, Interaktiv und Label. Im autonomen Modus werden Szenarien anhand einer Richtliniendatei ausgeführt. Im interaktiven Modus werden Informationen über Clusterkomponenten bereitgestellt, die manuell beschädigt werden können. Im Label-Modus können gezielt Objekte wie Pods über Labels abgeschossen werden.
Popeye
Popeye ist ein Bereinigungstool, das als „Desinfektionsmittel“ für Kubernetes-Cluster fungiert.
Es scannt den gesamten Cluster und meldet Probleme im Zusammenhang mit Konfigurationen und Ressourcen. Es unterstützt bei der Einhaltung von Best Practices im Kubernetes-Cluster.
Das Tool ist für Windows, Linux und macOS verfügbar und arbeitet derzeit mit Nodes, Pods, Namespaces und Services. Mit Popeye können ungenutzte Ressourcen, Port-Konflikte, RBAC-Regeln und Metriknutzung einfach identifiziert werden.
Fazit
DevOps-Tools sind für den Erfolg unerlässlich, und die obige Liste soll Ihnen helfen, Kubernetes besser zu verwalten.