Weltweit führend bei Datenresilienz
Hinweise von Veeam für Kunden, die vom Content-Update von CrowdStrike betroffen sind

Was ist ein Kubernetes-Cluster?

Ein Kubernetes-Cluster ist eine Gruppe von Rechenressourcen, z. B. Server oder virtuelle Maschinen, die vom Kubernetes-Containerorchestrierungssystem verwaltet werden. Kubernetes ist eine Open-Source-Containerplattform, mit der sich Anwendungscontainer unkompliziert bereitstellen und skalieren lassen. Es bietet eine benutzerfreundliche API für die Verwaltung von Containern über verschiedene Umgebungen und Infrastrukturen hinweg. Zu einer gut orchestrierten Kubernetes-Umgebung gehört auch eine zuverlässige Datensicherung. Wenn Sie Kubernetes bereits nutzen oder dies in naher Zukunft planen, können Sie Ihre Cluster und kritischen Workloads mit den nativen Backup-Lösungen von Veeam zuverlässig schützen.

Komponenten eines Kubernetes-Clusters

Ein Kubernetes-Cluster besteht aus zwei Knotentypen: Masterknoten und Worker-Knoten. Masterknoten sind die Komponenten der Steuerungsebene, die für das Management des Gesamtstatus des Clusters verantwortlich sind, z. B. die Aufrechterhaltung des gewünschten Status des Clusters, die Planung und Bereitstellung von Anwendungen und das Management des Cluster-Netzwerks. In einem hochverfügbaren Kubernetes-Cluster kann es aus Gründen der Fehlertoleranz mehrere Masterknoten geben.

Workerknoten hingegen sind die Rechenressourcen, auf denen die eigentlichen containerisierten Anwendungen ausgeführt werden. Sie hosten Pods, die mindestens einen Container enthalten, und sind die kleinsten Einheiten, die Sie in Kubernetes bereitstellen können. Die Worker-Knoten kommunizieren mit dem Master-Knoten, um sicherzustellen, dass alles wie vorgesehen funktioniert.

Kubernetes beinhaltet auch zwei Arten von Komponenten: Komponenten der Steuerungsebene und Knotenkomponenten. Die Komponenten der Steuerungsebene bestehen aus Folgendem:

  • Kube-apiserver: Der API-Server ist der primäre Steuerungsmechanismus der Kubernetes-Steuerungsebene. Er ermöglicht den Zugriff auf die Kubernetes-API und verarbeitet Anforderungen und Vorgänge, um den Status des Clusters zu aktualisieren.
  • Kube-Scheduler: Die Aufgabe dieser Komponente besteht darin, Pods basierend auf Ressourcenanforderungen, Servicequalität, Anforderungen und anderen Einschränkungen auf Knoten zu platzieren. Dabei werden die Knotenkapazität, Affinitäts-/Antiaffinitätsregeln und andere Faktoren berücksichtigt, um Entscheidungen zur Zeitplanung zu treffen.
  • Kube-controller-manager: Diese Komponente führt Controllerprozesse aus, die den Gesamtzustand des Clusters verwalten. Einige Beispiele für Controller sind der Replikationscontroller, der sicherstellt, dass die gewünschte Anzahl von Replikaten für eine bestimmte Anwendung ausgeführt wird, und der Servicecontroller, der den Lastenausgleich für Anwendungen verwaltet.
  • etcd: Hierbei handelt es sich um einen verteilten, konsistenten Schlüssel-Wert-Speicher, der von Kubernetes zum Speichern aller Daten verwendet wird, die zur Verwaltung des Clusters benötigt werden, einschließlich Konfigurationsdaten und des allgemeinen Systemzustands.

Einzelne Knoten hingegen beinhalten die unten aufgeführten Komponenten.

  • Kubelet: Dieser Agent wird auf jedem Worker-Knoten ausgeführt, stellt sicher, dass Container in Pods ausgeführt werden, und meldet den Status des Knotens und der ausgeführten Pods an die Steuerungsebene. Es kommuniziert mit dem API-Server, um sicherzustellen, dass der gewünschte Zustand der Anwendung beibehalten wird.
  • Kube-Proxy: Bei dieser Komponente handelt es sich um einen Netzwerk-Proxy, der auf jedem Worker-Knoten ausgeführt wird und die Service-Abstraktion ermöglicht, indem Netzwerkregeln eingehalten und sichergestellt wird, dass der Datenverkehr ordnungsgemäß an die entsprechenden Pods weitergeleitet wird.
  • Container-Laufzeitumgebung: Diese Software ist für die Ausführung von Containern zuständig, wie z. B. Docker, containerd oder CRI-O. Kubernetes unterstützt verschiedene Container-Laufzeitumgebungen über die Container Runtime Interface.

Beide Kategorien, die in einem Cluster zusammengefasst werden, bieten zusammen eine konsistente und zuverlässige Plattform für die Bereitstellung und Verwaltung containerisierter Anwendungen. Kubernetes-Cluster bieten insbesondere die notwendige Abstraktion und Automatisierung für eine Verwaltung containerisierter Anwendungen in großem Umfang. Entwickler können sich somit auf den Code und Betriebsteams auf eine effizientere Verwaltung der Infrastruktur konzentrieren.

Verwenden eines Kubernetes-Clusters

Die Einrichtung, Konfiguration und Wartung von Kubernetes erfolgt fast ausschließlich über die Kubernetes-API. Diese API stellt Systemfunktionen bereit und ermöglicht die programmgesteuerte Verwaltung von Clustern und Knoten. Es gibt mehrere Möglichkeiten, mit den Kubernetes-APIs zu arbeiten, darunter:

  • kubectl: Die primäre Möglichkeit für die Interaktion mit der Kubernetes-API ist das Befehlszeilentool kubectl. Es übersetzt Ihre Befehle in API-Aufrufe und sendet sie an den API-Server.
  • RESTful API-Aufrufe: Mit Tools wie curl, wget oder einer anderen Programmiersprache, die HTTP-Anfragen unterstützt, können Sie RESTful API-Aufrufe direkt an den Kubernetes-API-Server senden. Um API-Aufrufe zu authentifizieren und zu autorisieren, müssen Sie die entsprechenden Anmeldeinformationen und Token verwenden.
  • Client-Bibliotheken: Kubernetes bietet Clientbibliotheken für verschiedene Programmiersprachen wie Go, Python, Java und JavaScript. Diese Bibliotheken bieten eine komfortablere und idiomatischere Möglichkeit der Interaktion mit der Kubernetes-API in Ihrer bevorzugten Sprache.

In Kubernetes ist der gewünschte Zustand eine deklarative Darstellung des erwarteten Zustands der Ressourcen innerhalb des Clusters. Beim Aktualisieren von Pods, Bereitstellungen oder Geräten wird der Status mithilfe einer YAML- oder JSON-Konfigurationsdatei definiert. Kubernetes gleicht dann den tatsächlichen Zustand der Ressourcen mit dem in der Konfigurationsdatei angegebenen Zustand ab.

Der gewünschte Zustand beinhaltet Informationen wie das Container-Image, die Anzahl der Replikate für eine Bereitstellung und die Umgebungsvariablen für Pods. Dazu gehört auch die Art des Lastenausgleichs, die für einen Dienst verwendet wird. Kubernetes-Controller überwachen diese Dateien kontinuierlich, um Anpassungen entsprechend dem gewünschten Zustand des Containers vorzunehmen.

Dieser deklarative Ansatz bietet mehrere Vorteile. So ist Kubernetes beispielsweise in der Lage zur Selbstreparatur, wenn ein Pod abstürzt oder ein Knoten nicht mehr erreichbar ist. Kubernetes ergreift automatisch Korrekturmaßnahmen, um den gewünschten Zustand wiederherzustellen. Außerdem sorgt es dafür, dass die Cluster-Ressourcen mit den vertrauten Workflows zur Versionskontrolle übereinstimmen, wodurch Rollbacks erheblich erleichtert werden.

Einrichtung eines Kubernetes-Clusters

Kubernetes mag auf den ersten Blick kompliziert erscheinen, bietet leistungsstarke Abstraktionen und eine konsistente API, die das Management von Anwendungen im großen Maßstab erheblich vereinfacht. Die Einrichtung eines Kubernetes-Clusters ist jedoch infrastrukturell einzigartig, sodass es hilfreich ist, sich einen Überblick über den Prozess zu verschaffen. Bevor Sie sich jedoch eingehender mit dem Thema beschäftigen, ist es hilfreich, sich die Bereitstellungsanforderungen bewusst zu machen.

Kubernetes kann auf verschiedensten Hardware und VM-Konfigurationen ausgeführt werden. Die genauen Anforderungen hängen vom Umfang und dem Ressourcenbedarf Ihrer Anwendungen ab. Für einen minimalen Cluster sollte jeder Knoten jedoch über mindestens 2 CPU-Kerne und 2 GB RAM, eine stabile und leistungsfähige Netzwerkverbindung sowie ausreichend Speicherplatz in Form von lokalem Speicher, einem NAS oder einer cloudbasierten Speicheroption wie Amazon EBS, Google Persistent Disk und Azure Disk verfügen.

Einrichten des Kubernetes-Clusters

Kubernetes-Cluster können in nahezu jeder Umgebung bereitgestellt werden – lokal, in einer Public Cloud oder über einen verwalteten Kubernetes-Service wie Google Kubernetes Engine, Amazon Elastic Kubernetes Service oder Azure Kubernetes Service. Die verwaltete Weg macht das Vorgehen leichter, die Selbstverwaltung von Kubernetes bietet allerdings eine bessere Kontrolle über die Infrastruktur.

Für das Setup muss kubectl installiert sein, das Befehlszeilentool, das mit der Kubernetes-API interagiert. Dies stellt eine Verbindung über HTTP her, wird von einem lokalen Computer aus installiert und für die Verbindung mit einem Cluster konfiguriert.

Anwendungskomponenten definieren

Containerisierte Anwendungen in Kubernetes werden mithilfe von deklarativen YAML- oder JSON-Konfigurationsdateien beschrieben, die den gewünschten Zustand der Anwendungskomponenten definieren. Zu den wichtigsten Komponenten gehören:

  • Pods: Die kleinsten bereitstellbaren Einheiten, die einen oder mehrere Container ausführen
  • Services: Festlegung, wie Ihre Anwendung für das Netzwerk oder andere Teile des Clusters verfügbar gemacht werden soll
  • Bereitstellungen: Definition des gewünschten Zustands der Anwendung und Verwaltung von rollierenden Updates
  • ConfigMaps und Secrets: Speichern von Konfigurationsdaten und sensiblen Informationen getrennt vom Container-Image

Bereitstellen der Anwendung

Cluster werden mithilfe von kubectl bereitgestellt, um die Konfigurationsdateien anzuwenden, wodurch Kubernetes angewiesen wird, die erforderlichen Ressourcen zu erstellen, um den gewünschten Zustand Ihrer Anwendung zu erreichen. In der Zwischenzeit erfordert die eigentliche Konfiguration einiges an Feinabstimmung.

  • Konfigurieren Sie die Steuerungsebene: Richten Sie die Masterknoten mit den erforderlichen Komponenten ein, einschließlich kube-apiserver, etcd, kube-scheduler, kube-controller-manager. In einem hochverfügbaren Setup benötigen Sie mehrere Masterknoten hinter einem Load Balancer.
  • Worker-Knoten konfigurieren: Richten Sie die Worker-Knoten mit den erforderlichen Komponenten ein, einschließlich kubelet, kube-proxy und der Container-Laufzeit. Möglicherweise müssen Sie die Container-Laufzeit, beispielsweise Docker oder containerd, nach Ihren Wünschen konfigurieren.
  • Konfigurieren des Netzwerks: Kubernetes unterstützt verschiedene Netzwerklösungen, wie Calico, Flannel oder Weave. Wählen Sie diejenige, die Ihren Anforderungen am besten entspricht, und folgen Sie zur Konfiguration der Dokumentation des Anbieters.
  • Konfigurieren des Speichers: Richten Sie die Speicherklassen und -vorkehrungen entsprechend der von Ihnen gewählten Speicherlösung ein. Dazu gehören die Konfiguration von lokalen Volumes, Network Attached Storage oder cloudbasierten Speicherservices. Außerdem sollten Sie eine zuverlässige Backup-Lösung bereitstellen.
  • Konfigurieren einer rollenbasierten Zugriffskontrolle: Definieren Sie Rollen und Berechtigungen für Benutzer und Anwendungen, um sicher auf die Kubernetes-API und -Ressourcen zugreifen zu können.
  • Konfigurieren von Monitoring und Protokollierung: Richten Sie Monitoring-Tools wie Prometheus und Grafana ein, um Metriken und Protokolle zu erfassen.
  • Konfigurieren der Sicherheit: Implementieren Sie Best Practices für die Sicherheit, z. B. das Sichern des Kubernetes-API-Servers, das Verschlüsseln von Secrets und das Aktivieren von Netzwerkrichtlinien zur Isolierung von Namespaces.

Beachten Sie bitte, dass es sich hierbei um allgemeine Schritte zum Bereitstellen und Konfigurieren eines Kubernetes-Clusters handelt. Der genaue Prozess kann je nach der gewählten Bereitstellungsoption, der Infrastruktur und den spezifischen Anforderungen variieren.

Kubernetes hat zwar eine Lernkurve, aber die leistungsstarken Abstraktionen und Tools erleichtern das Management containerisierter Anwendungen in großem Maßstab. Mit etwas Übung und Erfahrung wird die Arbeit mit Kubernetes mit der Zeit intuitiver. Auch im Internet gibt es zahlreiche Ressourcen, die Ihnen helfen, sich mit dieser leistungsstarken Containerisierungstechnologie vertraut zu machen und sie zu beherrschen.

Kubernetes-Cluster-Management

Für das Monitoring bietet Kubernetes integrierte Tools, die dabei helfen, die Integrität und Leistung des Clusters aufrechtzuerhalten. Inzwischen gibt es auch externe und Drittanbieter-Tools und -Plattformen, die erweiterte Monitoring-, Protokollierungs- und Benachrichtigungsfunktionen bieten.

Kubernetes vereinfacht das bedarfsgerechte manuelle oder automatische Auf- und Abwärtsskalieren von Anwendungen mit dem Horizontal Pod Autoscaler (HPA). Sie können die Langlebigkeit der Leistung Ihrer Anwendung sicherstellen, indem Sie sie sicher und auf dem neuesten Stand halten. Sie können rollierende Updates Ihrer Anwendung ohne Ausfallzeiten durchführen, indem Sie die Bereitstellungskonfiguration aktualisieren.

So können Sie mit Veeam jetzt starten

Der Einstieg in Kubernetes mag entmutigend erscheinen, aber mit dem richtigen Ansatz und den richtigen Ressourcen können Sie sich schnell damit vertraut machen. Beginnen Sie mit der Erkundung gängiger Lösungen und Best Practices für das Kubernetes-Ökosystem. Berücksichtigen Sie die spezifischen Anforderungen Ihres Unternehmens und überlegen Sie, wie Kubernetes in Kombination mit der nativen Backup-Lösung von Veeam Ihnen helfen kann, diese zu erfüllen.

Wenn Sie bereit für den Einstieg sind, werfen Sie einen Blick auf Veeam Kasten, eine native Backup-Lösung der nächsten Generation, die speziell für Kubernetes entwickelt wurde. Registrieren Sie sich kostenlos für die Community-Version und entwickeln Sie sofort eine Backup-Strategie. Denken Sie daran: Eine gut orchestrierte Kubernetes-Umgebung ist ohne zuverlässige Datensicherung unvollständig. Machen Sie Veeam zu Ihrem bewährten Begleiter für Ihr Containerisierungsprojekt mit Kubernetes.

Jetzt starten

5 Gründe

Demo ansehen

Erfahren Sie, wie Sie mit Veeam die nötige Datenresilienz zum Schutz vor jeglichen Bedrohungen erreichen

5 Gründe

Kontakt

Erhalten Sie Unterstützung bei der Wahl der richtigen Lösung für Ihr Unternehmen

5 Gründe

F&E-Foren von Veeam

Unterstützung für Ihre Veeam-Produkte und -Softwarelösungen