Skip to Content

Was ist ein Kubernetes-Cluster?

Blaue Threads überschneiden sich und verbinden verschiedene Knoten auf einem dunklen Hintergrund, ähnlich einem Netzwerkdiagramm.

Kubernetes hat die Art und Weise revolutioniert, wie Unternehmen containerisierte Anwendungen verwalten, indem es ein robustes System zur Automatisierung von Bereitstellung, Skalierung und Betrieb bereitstellt. Im Mittelpunkt von Kubernetes steht das Konzept eines Clusters, das für eine effiziente Containerorchestrierung unerlässlich ist. Kubernetes-Cluster zu verstehen ist für jedes Unternehmen, das Container-Technologien voll ausschöpfen möchte, von entscheidender Bedeutung.

In diesem Artikel werden wir untersuchen, was ein Kubernetes-Cluster ist, seine Komponenten, die Einrichtung eines Clusters und Best Practices für das Management.

Was ist ein Kubernetes-Cluster?

Ein Kubernetes-Cluster ist eine Gruppe von Maschinen (Knoten), die zusammenarbeiten, um containerisierte Anwendungen auszuführen und zu verwalten. Der Hauptzweck eines Kubernetes-Clusters besteht darin, die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen zu automatisieren. Dies bedeutet mehrere wichtige Vorteile für Benutzer, wie z. B.:

  • Verbesserte Skalierbarkeit: Kubernetes-Cluster bieten elastische Skalierbarkeit. Sie können Ihre Anwendungen ganz einfach nach oben oder unten skalieren, indem Sie nach Bedarf Knoten hinzufügen oder entfernen. Sie können beispielsweise während Spitzenverkehrszeiten weitere Knoten hinzufügen, um die erhöhte Last zu bewältigen. Umgekehrt können Sie Ihren Cluster während bedarfsarmer Zeiträume herunterskalieren, um Ressourcen zu sparen.
  • Verbesserte Fehlertoleranz: Kubernetes-Cluster sind so konzipiert, dass sie hochverfügbar sind. Sie erreichen dies durch Replikation, bei der kritische Anwendungen auf mehreren Pods über verschiedene Knoten hinweg ausgeführt werden. Wenn ein Knoten ausfällt, startet Kubernetes die ausgefallenen Container automatisch neu und plant sie auf gesunden Knoten neu. Dadurch wird sichergestellt, dass Ihre Anwendung auch im Falle eines Knotenausfalls verfügbar und betriebsbereit bleibt.
  • Vereinfachtes Management: Kubernetes-Cluster optimieren die Verwaltung von containerisierten Anwendungen. Anstatt Konfigurationen auf jedem einzelnen Knoten manuell zu verwalten, verwendet Kubernetes deklarative Konfigurationsdateien, die in YAML geschrieben sind. Diese Dateien geben den gewünschten Zustand Ihrer Anwendung an, und Kubernetes sorgt dafür, dass der Zustand erhalten bleibt.

Komponenten eines Kubernetes-Clusters

Ein Kubernetes-Cluster besteht aus zwei Hauptkomponenten: der Steuerungsebene und den Worker-Knoten. Jede dieser Komponenten spielt eine bestimmte Rolle beim Verwalten des Clusters und beim Ausführen containerisierter Anwendungen.

Steuerungsebene

Die Steuerungsebene fungiert als Gehirn des Kubernetes-Clusters und ist für Entscheidungen und die Ausgabe von Befehlen an Worker-Knoten verantwortlich. Sie besteht aus mehreren Schlüsselkomponenten, darunter:

  • API-Server: Der API-Server ist der zentrale Kommunikations-Hub für den Cluster. Sie stellt die Kubernetes-API bereit, die als Einstiegspunkt für alle administrativen Aufgaben und Interaktionen mit dem Cluster dient. Benutzer und Tools wie kubectl interagieren über den API-Server mit dem Cluster, um Befehle zu übermitteln, Bereitstellungen zu verwalten und auf Cluster-Informationen zuzugreifen.
  • uswd : uswd ist ein hochverfügbarer verteilter Schlüsselwert-Store, der als einzige Quelle der Wahrheit für den Cluster-Zustand fungiert. Es speichert wichtige Informationen über die Cluster-Konfiguration, einschließlich Pod-Definitionen, Servicedetails und gewünschtem Bereitstellungszustand. Diese Daten werden über mehrere Ätzknoten repliziert, um Konsistenz und Fehlertoleranz zu gewährleisten.
  • Personaleinsatzplaner: Der Scheduler ist für die Zuweisung von Workloads (Pods) zu Worker-Knoten im Cluster verantwortlich. Es berücksichtigt Faktoren wie Ressourcenverfügbarkeit, Knotenkapazität und Pod-Affinitätsregeln bei der Entscheidungsfindung. Beispielsweise kann der Scheduler Pods über verschiedene Knoten verteilen, um die Ressourcenauslastung zu verbessern oder Pods mit hohem Ressourcenbedarf auf Knoten mit ausreichend Kapazität zu priorisieren.
  • Controller-Manager: Der Controller-Manager ist der zentrale Punkt für die Verwaltung aller Controller im Cluster. Controller sind dafür verantwortlich, den Zustand des Clusters kontinuierlich zu überwachen und Korrekturmaßnahmen zu ergreifen, um sicherzustellen, dass der tatsächliche Zustand des Clusters mit dem gewünschten Zustand übereinstimmt, der in der Konfiguration definiert ist. Der Controller Manager verwaltet mehrere Core Controller, von denen jeder einen bestimmten Zweck verfolgt.

Mitarbeiterknoten

Worker-Knoten sind die Arbeitspferde des Clusters. Sie sind die Maschinen, die Container-Anwendungen tatsächlich ausführen. Jeder Worker-Knoten hat mehrere Komponenten, die für das Verwalten und Ausführen von Containern verantwortlich sind:

  • Kubelet: Das kubelet ist ein Agent, der auf jedem Worker-Knoten ausgeführt wird. Es fungiert als Vertreter der Steuerungsebene auf dem Knoten und ist für den Lebenszyklus der Pods verantwortlich, die dem Knoten zugewiesen sind. Kubelet stellt sicher, dass Container innerhalb eines Pods gemäß der Pod-Spezifikation heruntergeladen, konfiguriert und ausgeführt werden. Außerdem werden der Zustand von Containern überwacht, ausgefallene Container neu gestartet und die für den sicheren Betrieb der Container erforderlichen Geheimnisse abgerufen.

  • Kube-Proxy: Kube-proxy ist ein Netzwerk-Proxy, der auf jedem Worker-Knoten ausgeführt wird. Es implementiert für den Cluster definierte Netzwerkrichtlinien und stellt sicher, dass Pods miteinander und mit externen Services kommunizieren können. Kube-proxy pflegt Netzwerk-Routing-Regeln und übersetzt Servicenamen in Pod-IP-Adressen, sodass Pods Services innerhalb des Clusters erkennen und mit ihnen kommunizieren können.

Durch die Zusammenarbeit ermöglichen diese Komponenten innerhalb der Steuerungsebene und der Worker-Knoten Kubernetes die effektive Verwaltung und Orchestrierung containerisierter Anwendungen in großem Maßstab.

Einrichten eines Kubernetes-Clusters

Sie können einen Kubernetes-Cluster über zwei Hauptmethoden einrichten: über einen verwalteten Kubernetes-Service oder durch manuelle Bereitstellung.

Verwaltete Kubernetes-Services

Cloud-Anbieter wie Google Cloud Platform (GCP) mit Google Kubernetes Engine (GKE), Amazon Web Services (AWS) mit Elastic Kubernetes Service (EKS) und Microsoft Azure mit Azure Kubernetes Service (AKS) bieten verwaltete Kubernetes-Services an. Diese Services kümmern sich um die Komplexität der Bereitstellung, Konfiguration und Verwaltung der Kubernetes-Cluster-Infrastruktur. Sie definieren einfach Ihre gewünschte Cluster-Konfiguration und der Service übernimmt die schwere Arbeit, sodass Sie sich auf die Bereitstellung Ihrer containerisierten Anwendungen konzentrieren können.

Manuelle Bereitstellung

Für mehr Kontrolle und Anpassung können Sie einen Kubernetes-Cluster manuell mit einem Tool wie kubeadm implementieren. Kubeadm ist ein Toolkit zum Boottrappen eines Kubernetes-Clusters. Bei dieser Methode wird Kubeadm auf einem bestimmten Masterknoten und der Kubelet-Agent auf allen Worker-Knoten im Cluster installiert. 

Einrichten eines Kubernetes-Clusters manuell

Voraussetzungen

  • Infrastruktur: Stellen Sie sicher, dass Sie über eine ausreichende Infrastruktur verfügen, z. B. virtuelle Maschinen oder Cloud-Instanzen.
  • Container-Laufzeit: Installieren Sie eine Container-Laufzeit wie Containerd oder Docker auf allen Knoten.

Schritt 1: Kubeadm, Kubelet und Kubectl installieren

Verwenden Sie auf allen Maschinen (Master- und Worker-Knoten) den Paketmanager Ihrer Verteilung, um die erforderlichen Kubeadm-Tools zu installieren:

# Update package lists (replace 'your_package_manager' with your actual package manager like apt-get or yum)
 $ sudo your_package_manager update
 
 # Install kubeadm, kubelet, and kubectl
 $ sudo your_package_manager install -y kubeadm kubelet kubectl

Hinweis: Bei einigen Systemen kann nach der Installation eine zusätzliche Konfiguration erforderlich sein. Weitere Informationen zu dem von Ihnen gewählten Betriebssystem finden Sie in der offiziellen Kubernetes-Dokumentation.

FlashArray testen

Erleben Sie, wie Pure Storage Block- und Dateisysteme in einer Self-Service-Umgebung drastisch vereinfacht.

Jetzt testen

Schritt 2: Die Steuerungsebene initialisieren (Master-Knoten)

Wählen Sie eine Ihrer Maschinen aus, die als Masterknoten fungieren soll. Führen Sie den folgenden Befehl auf dem Masterknoten aus, um die Steuerungsebene zu initialisieren. Dieser Prozess generiert Konfigurationsdateien und bietet einen Join-Befehl für Worker-Knoten:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • Kubeadm-Init: Dieser Befehl initialisiert die Steuerungsebene auf dem Masterknoten.
  • --pod-network-cidr=10,244,0,0/16: Diese Option gibt den CIDR-Bereich für das Pod-Netzwerk an. Sie können diesen Wert an Ihre Netzwerkkonfigurationsanforderungen anpassen.

Nach Ausführung des Initialisierungsbefehls stellt kubeadm die Ausgabe mit einem Join-Befehl für Worker-Knoten bereit. Beachten Sie diesen Befehl, da Sie ihn in Schritt 5 benötigen.

Schritt 3: Kubectl konfigurieren

Kopieren Sie auf dem Masterknoten die generierte Admin-Konfigurationsdatei in Ihr lokales kubectl-Konfigurationsverzeichnis. Dadurch können Sie den Cluster mit kubectl-Befehlen verwalten. Der folgende Befehl erreicht dies:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

Schritt 4: Pod-Netzwerk bereitstellen

Ein Pod-Netzwerk-Plug-in ermöglicht die Kommunikation zwischen Pods innerhalb des Clusters. Flanell ist eine beliebte Pod-Netzwerkoption. Sie können Flannel mit dem folgenden Befehl auf dem Masterknoten bereitstellen:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Schritt 5: Schließen Sie Mitarbeiterknoten an den Cluster an

Führen Sie auf jedem Worker-Knoten den Join-Befehl aus, der von kubeadm während des Initialisierungsschritts auf dem Master-Knoten bereitgestellt wird (Schritt 2). Dieser Befehl registriert den Worker-Knoten bei der Steuerebene und bereitet ihn auf die Ausführung containerisierter Workloads vor. Der Join-Befehl sieht in der Regel wie folgt aus:

$ sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
  • <master_ip_address>: Ersetzen Sie dies durch die IP-Adresse Ihres Masterknotens.
  • <token>: Ersetzen Sie dies durch das Token, das während des Initialisierungsprozesses auf dem Masterknoten generiert wurde.
  • <hash>: Ersetzen Sie dies durch den Discovery-Token-CA-Zertifikat-Hash, der durch den kubeadm-Init-Befehlsausgang bereitgestellt wird.

Schritt 6: Cluster-Zustand überprüfen

Sobald alle Worker-Knoten dem Cluster beigetreten sind, überprüfen Sie den Zustand Ihres Clusters mit kubectl-Befehlen:

$ kubectl get pods -n kube-system
Evergreen One

Risiken senken mit Evergreen//One™

Ausfälle sind keine Option. Verlassen Sie sich auf Pure, um sicherzustellen, dass Sie immer in der Lage sind, Kapazitätsanforderungen zu erfüllen.

Mehr über Evergreen//One erfahren

Verwalten eines Kubernetes-Clusters

Ein effektives Management eines Kubernetes-Clusters ist entscheidend für die Aufrechterhaltung von Performance und Zuverlässigkeit. Dazu gehören das Skalieren, Aktualisieren und Aktualisieren der Knoten im Cluster.

Skalierung des Clusters

Kubernetes bietet horizontale Skalierung, sodass Sie die Anzahl der Worker-Knoten ganz einfach an Ihre Workload-Anforderungen anpassen können.

  1. Knoten hinzufügen (Skalierung):
    1. Bereiten Sie den neuen Knoten vor: Stellen Sie sicher, dass der neue Knoten die empfohlenen Systemanforderungen für die gewünschte Kubernetes-Version erfüllt. Installieren Sie die erforderliche Software, einschließlich einer Container-Laufzeit wie Docker oder Containerd, und den Kubelet-Agenten. In der offiziellen Kubernetes-Dokumentation finden Sie detaillierte Installationsschritte basierend auf Ihrem Betriebssystem
    2. Verbinden Sie den Knoten mit dem Cluster: Verwenden Sie den Befehl kubeadm Join auf dem neuen Knoten, um dem vorhandenen Cluster beizutreten. Sie benötigen die folgenden Informationen aus Ihrem ersten Cluster-Setup:
      • Master-Knoten-IP-Adresse: Die IP-Adresse Ihres Masterknotens.
      • Token beitreten: Dieses Token wurde während der Initialisierung der Steuerungsebene generiert und im Ausgang bereitgestellt.

Hier ist ein Beispiel für einen Kubeadm-Join-Befehl:

sudo kubeadm im Wert von $ <master_ip_address>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

  • Ersetzen Sie <master_ip_address> sie durch die tatsächliche IP-Adresse Ihres Masterknotens.
  • Ersetzen Sie das Token<token>, das während der Initialisierung der Steuerungsebene generiert wurde.
  • Ersetzen Sie <hash> durch den CA-Zertifikats-Hash für den Discovery-Token von der Initialisierungsausgabe der Steuerungsebene.

Knoten entfernen (skalieren):
Bevor Sie einen Knoten entfernen, ist es wichtig, ihn zuerst zu leeren. Das Entleeren stellt sicher, dass Ihre Anwendungen keine Ausfallzeiten haben, indem Pods anständig aus dem Knoten entfernt und auf gesunden Knoten geplant werden.

Knoten entleeren: Verwenden Sie den Befehl kubectl drain, um den Knoten zu leeren, den Sie entfernen möchten. Mit diesem Befehl werden Pods aus dem Knoten entfernt, während DaemonSets (kritische Systemservices) weiter ausgeführt werden kann.

$ kubectl drain <node-name> --ignore-daemonsets

Ersetzen Sie ihn <node-name> durch den Hostnamen oder die IP-Adresse des Knotens, den Sie entfernen möchten.

 

Knoten löschen: Nach dem Entleeren können Sie den Knoten mit dem Befehl kubectl delete node sicher aus dem Cluster entfernen.

 

$ kubectl delete node <node-name>

Ersetzen Sie ihn <node-name> durch den Hostnamen oder die IP-Adresse des Knotens, den Sie entfernen möchten.

Sie können auch andere Verwaltungsvorgänge durchführen, z. B. ein Upgrade der Steuerungsebene, ein Upgrade des Worker-Knotens und rollierende Upgrades.

Aufrechterhaltung der Spitzenleistung: Überwachung, Protokollierung und Storage

Effektive Überwachung und Protokollierung sind entscheidend, um Ihren Kubernetes-Cluster gesund zu halten. Tools wie Prometheus und der ELK Stack bieten umfassende Einblicke in die Ressourcenauslastung, den Pod-Zustand und die Gesamtleistung, sodass Sie Probleme proaktiv erkennen und beheben können, bevor sie sich auf Anwendungen auswirken. Kubernetes lässt sich auch in verschiedene Lösungen von Drittanbietern integrieren, um Flexibilität zu erzielen.

Effizientes Datenmanagement ist der Schlüssel für zustandsbehaftete Anwendungen. Portworx ® von Pure Storage bietet eine leistungsstarke, containernative Lösung, die sich nahtlos in Ihren Kubernetes-Cluster integrieren lässt.

Portworx optimiert Storage für Ihre Workloads durch:

  • Bereitstellung persistenter Volumes: Stellt sicher, dass die Daten auch dann bestehen bleiben, wenn Pods neu gestartet oder neu geplant werden.
  • Bereitstellung von Datenschutz und Disaster Recovery: Bietet Snapshots und Replikation und minimiert Ausfallzeiten bei Vorfällen.
  • Vereinfachtes Management: Bietet eine benutzerfreundliche Schnittstelle zum Bereitstellen, Überwachen und Verwalten von Storage-Ressourcen.

Fazit

Kubernetes-Cluster sind grundlegend für die moderne Containerorchestrierung und bieten eine verbesserte Skalierbarkeit, Fehlertoleranz und vereinfachtes Anwendungsmanagement. Das Verständnis der Komponenten, des Einrichtungsprozesses und der Managementpraktiken von Kubernetes-Clustern ist entscheidend, um ihr volles Potenzial auszuschöpfen. Portworx von Pure Storage lässt sich nahtlos in Kubernetes integrieren und bietet robuste Storage-Funktionen, die die Gesamteffizienz und Zuverlässigkeit von containerisierten Workloads verbessern.

02/2025
Deploying Portworx on Google Distributed Cloud Anthos with vSphere
This Portworx reference architecture contains a validated architecture and design model to deploy Portworx on Anthos running on vSphere.
Referenzarchitektur
28 pages

Wichtige Ressourcen und Veranstaltungen durchsuchen

THOUGHT LEADERSHIP
Der Innovationswettlauf

Branchenführer, die an vorderster Front der Storage-Innovationen stehen, geben Einblicke und Ausblicke.

Mehr erfahren
ANALYSTENBERICHT
Planen Sie Ihre cyberresiliente Zukunft

Entdecken Sie Strategien zur Zusammenarbeit, um Investitionen in Cybersicherheit optimal zu nutzen und eine schnelle Reaktionsfähigkeit sowie Wiederherstellung sicherzustellen.

Bericht lesen
QUELLE
Die Zukunft des Storage: Neue Prinzipien für das KI-Zeitalter

Erfahren Sie, wie neue Herausforderungen wie KI die Anforderungen an den Daten-Storage verändern und ein neues Denken sowie einen modernen Ansatz für den Erfolg erforderlich machen.

E-Book herunterladen
QUELLE
Kaufen Sie keinen Storage mehr, sondern setzen Sie stattdessen auf Plattformen.

Untersuchen Sie die Anforderungen, die Komponenten und den Auswahlprozess für Storage-Plattformen in Unternehmen.

Bericht lesen
KONTAKTIEREN SIE UNS
Pure kontaktierenInfosymbol
Chatsymbol
Fragen, Kommentare?

Haben Sie eine Frage oder einen Kommentar zu Produkten oder Zertifizierungen von Pure?  Wir helfen Ihnen gerne!

Schlüsselsymbol
Termin für Demo vereinbaren

Vereinbaren Sie einen Termin für eine Live-Demo und sehen Sie selbst, wie Pure Ihnen helfen kann, Ihre Daten in überzeugende Ergebnisse zu verwandeln. 

Rufen Sie uns an: +49 89 26200662
Presse:
 pr@purestorage.com

 

Pure Storage Germany GmbH

Mies-van-der-Rohe-Straße 6

80807 München

Deutschland

info@purestorage.com

SCHLIESSEN
SchließenX-Symbol zum Schließen
Ihr Browser wird nicht mehr unterstützt!

Ältere Browser stellen häufig ein Sicherheitsrisiko dar. Um die bestmögliche Erfahrung bei der Nutzung unserer Website zu ermöglichen, führen Sie bitte ein Update auf einen dieser aktuellen Browser durch.