1. Themen
  2. Container
  3. Was ist ein Kubernetes-Cluster?

Was ist ein Kubernetes-Cluster?

CopiedFailedURL kopieren
  • Ein Kubernetes-Cluster ist eine Gruppe von Nodes, auf denen containerisierte Anwendungen ausgeführt werden. 
  • Der gewünschte Zustand eines Kubernetes-Clusters definiert seine Workloads, Images, Ressourcen und Konfigurationen.
  • Ein Kubernetes-Cluster besteht aus einer Control Plane, mit der Nodes verwaltet werden, die Aufgaben über Pods ausführen. Diese werden von Services für das Networking, Volumes für persistenten Daten-Storage und Namespaces für die virtuelle Isolation unterstützt.
  • Kubernetes-Cluster-Management bezeichnet, wie ein IT-Team eine Gruppe von Kubernetes-Clustern verwaltet.
  • Mit Red Hat Produkten wie OpenShift, Advanced Cluster Management und Ansible Automation Platform können Sie Multi Cluster Deployments in Cloud-, On-Premise- und Edge-Umgebungen effizient verwalten.

Was ist ein Kubernetes-Cluster?

Ein Kubernetes-Cluster ist eine Gruppe von Nodes, auf denen containerisierte Anwendungen ausgeführt werden. Wenn Sie Kubernetes ausführen, führen Sie einen Cluster aus.

Ein Cluster besteht mindestens aus einer Control Plane und einem oder mehreren Compute Nodes. Die Control Plane ist dafür verantwortlich, den gewünschten Zustand des Clusters aufrecht zu erhalten, und stellt beispielsweise fest, welche Anwendungen ausgeführt werden und welche Container Images sie verwenden. Nodes führen die Anwendungen und Workloads aus.

Der Cluster ist das Herzstück des entscheidenden Vorteils von Kubernetes: der Möglichkeit, Container auf verschiedenen Maschinen zu planen und auszuführen – unabhängig davon, ob es sich um physische oder virtuelle Maschinen handelt, die On-Premise oder in der Cloud ausgeführt werden. Kubernetes-Container sind nicht an einzelne Maschinen gebunden. Sie werden vielmehr über den gesamten Cluster abstrahiert.

Zur Einführung zu Kubernetes für UnternehmenSeite verfügbar in Englisch (Deutsch ist nicht verfügbar)

Der gewünschte Zustand eines Kubernetes-Clusters ist der Blueprint dazu, wie Ihre Anwendungen und Ihre Infrastruktur zu einem bestimmten Zeitpunkt aussehen und ausgeführt werden sollen.

Anstatt dem Cluster Schritt-für-Schritt-Anweisungen (imperativ) zu geben, deklarieren Sie das gewünschte Endergebnis (deklarativ) in einer YAML- oder JSON-Datei. Daraufhin arbeitet Kubernetes kontinuierlich daran, diesen Zustand beizubehalten.

In diesem Blueprint ist in der Regel Folgendes festgelegt:

  • Workloads: Welche Anwendungen, Microservices oder Batch-Jobs ausgeführt werden sollen.
  • Skalierung: Exakt wie viele Kopien (Replikate) von jedem Container vorhanden sein sollen.
  • Ressourcen: Wie viel CPU und Arbeitsspeicher jeder Anwendung zugewiesen wird.
  • Netzwerk und Sicherheit: Welche Ports offen sind, wie der Datenverkehr geleitet wird und wer Zugriff hat.
  • Resilienz: Was zu tun ist, wenn ein Container abstürzt oder ein Hardware Node ausfällt.

Der gewünschte Zustand eines Kubernetes-Clusters definiert, welche Anwendungen oder anderen Workloads ausgeführt werden sollen, welche Images sie verwenden, welche Ressourcen für sie verfügbar gemacht werden sollen sowie weitere Konfigurationsdetails.

Ein gewünschter Zustand wird durch Konfigurationsdateien definiert, die aus Manifesten bestehen. Dabei handelt es sich um JSON- oder YAML-Dateien, in denen der auszuführende Anwendungstyp und die Anzahl der für die Ausführung eines fehlerfreien Systems erforderlichen Replikate deklariert werden.

Der gewünschte Zustand des Clusters wird durch die Kubernetes-API definiert. Dabei kann die Interaktion mit dem Cluster über die Befehlszeile (mit kubectl) oder über die API erfolgen, um den gewünschten Zustand festzulegen oder zu ändern.

Kubernetes verwaltet Ihren Cluster automatisch so, dass er dem gewünschten Zustand entspricht. Ein einfaches Beispiel: Sie stellen eine Anwendung mit dem gewünschten Zustand „3“ bereit, das heißt, dass 3 Replikate der Anwendung ausgeführt werden sollen. Wenn einer dieser Container abstürzt, stellt Kubernetes fest, dass nur 2 Replikate ausgeführt werden. Daher wird ein weiteres Replikat hinzugefügt, um den gewünschten Zustand zu erreichen.

Sie können auch Kubernetes-Patterns verwenden, um die Skalierung Ihres Clusters automatisch je nach Auslastung zu verwalten. 

In welcher Beziehung steht ein Kubernetes-Cluster zu Nodes und Pods?

Wir haben einen Cluster als eine Gruppe von Nodes definiert. Sehen wir uns einige weitere Kubernetes-Begriffe an, die für das Verständnis der Funktion eines Clusters hilfreich sind.

  • Control Plane: Die Sammlung der Prozesse, die Kubernetes-Nodes steuern. Von hier aus werden sämtliche Aufgaben zugewiesen.
  • Nodes: Diese Maschinen führen die angeforderten Aufgaben aus, die von der Control Plane zugewiesen werden.
  • Pod: Eine Gruppe von einem oder mehreren Containern, die in einem einzigen Node bereitgestellt werden. Ein Pod ist das kleinste und einfachste Kubernetes-Objekt.
  • Service: Eine Möglichkeit, eine auf einer Gruppe von Pods ausgeführte Anwendung als Netzwerkservice verfügbar zu machen. Dadurch werden Arbeitsdefinitionen von den Pods entkoppelt.
  • Volume: Ein Verzeichnis, das Daten enthält und auf das die Container in einem Pod zugreifen können. Ein Kubernetes-Volume hat dieselbe Lebensdauer wie der Pod, der es umschließt. Ein Volume „überlebt“ alle Container, die im Pod ausgeführt werden, und Daten werden beim Neustart eines Containers beibehalten.
  • Namespace: Ein virtueller Cluster. Mit Namespaces kann Kubernetes mehrere Cluster (für mehrere Teams oder Projekte) innerhalb desselben physischen Clusters verwalten.

Kubernetes-Cluster-Management bezeichnet, wie ein IT-Team eine Gruppe von Kubernetes-Clustern verwaltet.

Angesichts moderner cloudnativer Anwendungen sind Kubernetes-Umgebungen inzwischen stark verteilt. So können sie über mehrere Rechenzentren vor Ort, in der Public Cloud oder am Netzwerkrand bereitgestellt werden.

Unternehmen, die Kubernetes in großem Umfang oder für die Produktion verwenden möchten, brauchen mehrere Cluster, unter anderem für Entwicklung, Tests und Produktion, die auf zahlreiche Umgebungen verteilt sind und die sie effizient verwalten müssen.

Mehr über das Management von Kubernetes-Clustern erfahren

Welche Vorteile bietet das Kubernetes-Cluster-Management?

Das Management von Kubernetes-Clustern transformiert die Softwarebereitstellung in Unternehmen, indem Deployment, Skalierung und Betrieb containerisierter Anwendungen automatisiert werden.

Zu den wichtigsten Vorteilen zählen:

  • Verbesserte Skalierbarkeit: Skalieren Sie Anwendungen nach Bedarf sofort vertikal oder horizontal. Um Datenverkehrsspitzen zu bewältigen oder Kosten außerhalb der Spitzenzeiten zu sparen, passt der Cluster Ihre Workloads automatisch an.
  • Erhöhte Resilienz: Kubernetes überwacht den Zustand Ihrer Container und Nodes kontinuierlich, um für hohe Verfügbarkeit zu sorgen. Wenn ein Container abstürzt oder ein Hardwarefehler auftritt, führt Kubernetes automatisch einen Neustart durch oder ersetzt die fehlerhafte Komponente, um Ausfallzeiten zu vermeiden.
  • Ressourceneffizienz: Kubernetes ermittelt die CPU- und Arbeitsspeicheranforderungen Ihrer Workloads und passt sie an die Nodes an, um die Infrastrukturnutzung zu maximieren und Verschwendung zu minimieren.
  • Unterstützung für DevOps und CI/CD: Der deklarative Charakter von Kubernetes ermöglicht eine Behandlung der Infrastruktur als Code und eine nahtlose Integration in CI/CD-Pipelines zur Automatisierung von Tests, Deployment und Rollouts. Gleichzeitig können DevOps-Teams schneller und agiler zusammenarbeiten.

Red Hat ist ein führender und aktiver Entwickler von Open Source-Container-Technologien (darunter auch Kubernetes) und entwickelt wichtige Tools zum Sichern, Vereinfachen und automatischen Aktualisieren Ihrer Container-Infrastruktur. 

Red Hat® OpenShift® ist eine einheitliche Plattform, mit der Sie Anwendungen in großem Umfang entwickeln, modernisieren und bereitstellen können. Mit Red Hat OpenShift erhalten Teams eine einzelne, integrierte Plattform für Operations- und Entwicklungsteams. Mithilfe entwicklungsfreundlicher Workflows, darunter integrierte CI/CD-Pipelines und eine Source to Image-Funktion, können Sie direkt vom Anwendungscode zum Container übergehen. Red Hat OpenShift basiert auf Kubernetes und unterstützt Sie dabei, intelligenter und schneller zu arbeiten – mit einem vollständigen Serviceportfolio für die Markteinführung von Anwendungen in der Infrastruktur Ihrer Wahl. 

Neben OpenShift können Sie auch Red Hat Advanced Cluster Management und Red Hat Ansible® Automation Platform zusammen verwenden, um mehrere Kubernetes-Cluster in vielen verschiedenen Regionen, darunter Public Cloud-, On-Premise- und Edge-Umgebungen, effizient bereitzustellen und zu verwalten.

Wie Red Hat Sie beim Aufbau und der Automatisierung hybrider Umgebungen unterstützt

 

Red Hat Advanced Cluster Management for Kubernetes | Testversion

Holen Sie sich eine kostenlose 60-tägige Testversion von Red Hat Advanced Cluster Management für Kubernetes, inklusive Zugriff auf unsere Containerplattform Red Hat OpenShift.

Weiterlesen

Einführung in die Kubernetes-Architektur

Eine kurze Einführung in die Komponenten von Kubernetes und deren Interaktionen.

Was ist Container-Orchestrierung?

Mithilfe der Container-Orchestrierung werden Deployment, Management, Skalierung und Vernetzung von Containern automatisiert.

Was ist ein Kubernetes Operator?

Ein Kubernetes Operator ist eine Methode zur Paketierung, Bereitstellung und Verwaltung einer Anwendung durch die Erweiterung der Funktionalität der Kubernetes-API.

Ressourcen zu Container

Verwandte Artikel