deagreez - stock.adobe.com

Diese Kubernetes-Begriffe sollten Administratoren kennen

Was sind Pods? Was sind Knoten? Was ist der Unterschied zwischen Namensräumen und Volumes? Wir geben einen Überblick über wichtige Kubernetes-Begriffe, die Sie im Alltag brauchen.

Kubernetes eines der häufigsten genutzten Programme zum Verwalten von Linux-Containern. Es funktioniert in mehreren verschiedenen Cloud-Umgebungen und ist in zahlreichen Versionen unterschiedlicher Anbieter erhältlich. Grund für seine immense Beliebtheit ist unter anderem, dass es sich so gut für das Management von Microservices eignet.

Aber sprechen Sie Kubernetes? Diese Liste allgegenwärtiger Kubernetes-Terminologie hilft Ihnen dabei, sich in die Orchestrierungsplattform einzuarbeiten, oder Kubernetes-Experten in Ihrem Team besser zu verstehen.

Knoten – Node. Ein Kubernetes Node ist eine kleine Sammlung von Ressourcen, die einen oder mehrere Container unterstützen. Jeder Knoten enthält Docker, kube-proxy und kubelet – Dienste, die beim Erstellen der Laufzeitumgebung helfen und Kubernetes-Pods unterstützen.

Ein Node Controller verwaltet alle Aspekte des Knotens während seines gesamten Lebenszyklus. Er führt eine Liste der Knoten sowie der verfügbaren Maschinen und Ressourcen und kann fehlerhafte Knoten löschen oder Pods von nicht verfügbaren Knoten entfernen. Nutzen Sie die Kommandozeile (CLI, Command Line Interface) kubectl, um Befehle für den Knoten auszuführen.

Cluster. Ein Cluster ist eine Gruppe von Servern oder Computerressourcen, die sich wie ein einzelnes System verhalten. Für Kubernetes bezeichnet ein Cluster normalerweise die Gruppe von Knoten, die Sie zum Verwalten und Ausführen Ihrer containerisierten Anwendungen verwenden.

Ein Kubernetes-Cluster besteht aus einem primären Knoten und mehreren sekundären Knoten. Der primäre Knoten steuert den Zustand des gesamten Clusters. Er sendet Aufgaben im Cluster aus, einschließlich Planung, Wartung und Updates.

Pod. Ein Pod ist die kleinste Einheit, die Sie in einer Kubernetes-Umgebung bereitstellen können. Er verfügt über einen oder mehrere Container, die im Tandem arbeiten und sich die Netzwerk- und Speicherressourcen des Hostknotens teilen, auf dem der Pod sich befindet.

Sie können Pods entweder händisch erstellen oder automatisiert über den Kubernetes-Controller. Pods existieren nur zusammen mit den Anwendungscontainern, die sie verwenden. Der Kubernetes-Controller verwendet den Knoten, auf dem er sich befindet, bis Sie die Sitzung beenden oder den Pod löschen. Fahren Sie einen Node herunter, löscht Kubernetes alle damit verbundenen Pods automatisch.

Kubelet. Kubelet ist der Agent, der Aktionen an den Kubernetes-Pods für jeden Kubernetes Node ausführt. Es registriert Knoten beim API-Server und stellt sicher, dass alle Container in einem Pod fehlerfrei laufen. Er berichtet dem primären Knoten über den Zustand seines Hosts und übermittelt Informationen zum und vom API-Server. Wenn von der Steuerungsebene eine Anfrage an einen Container kommt, führt kubelet die Aktion aus.

Kube-Proxy. Kube-Proxy stellt Netzwerkdienste für Kubernetes-Umgebung bereit. Es verarbeitet die Netzwerkkommunikation sowohl innerhalb eines Clusters, als auch des Clusters nach außen. Dafür verwaltet es Netzwerkregeln auf Knoten. Es verwendet die Paketfilterungsschicht Ihres Betriebssystems, sofern verfügbar. Ansonsten leitet es den Netzwerkverkehr selbst weiter.

Namensraum – Name Space. Namespaces unterteilen ein Kubernetes-Cluster in isolierte logische Einheiten, damit IT-Teams Ressourcen besser organisieren können. Kubernetes erstellt automatisch vier Namespaces für nicht zugewiesene Ressourcenbereitstellungen, Systemkonfigurationen, Systemnutzung und Leasingobjekte. Sie können beliebig viele Namespaces erstellen. IT-Teams verwenden sie, um Entwicklungs-, Test- und Produktionsumgebungen logisch voneinander zu isolieren.

Etcd. Etcd ist der primäre Datenspeicher, den Kubernetes verwendet. Er enthält alle Konfigurationsdateien und Informationen über den Zustand eines bestimmten Clusters und speichert und repliziert alle Clusterzustände. Sie können etcd entweder als Pods auf dem primären Knoten oder als externes Cluster bereitstellen.

Volumen – Volumes. Ein Kubernetes Volume ist ein Verzeichnis, das alle Daten enthält, auf die Container in einem bestimmten Pod zugreifen. Volumes verbinden Container und Pods – und existieren nur so lange, wie Sie sie verwenden – mit einem dauerhafteren Datensatz, der an anderer Stelle gespeichert ist. Wenn Sie einen Pod löschen, wird auch das zugehörige Volume zerstört. Die Daten in diesem Volume überdauern jedoch die Container oder Pods, die es verwenden.

Kubernetes unterstützt etwa 20 verschiedene Arten von Volumes, darunter emptyDir-Volumes, lokale Volumes und spezielle plattformspezifische Volumes.

Kubernetes Scheduler. Der Kubernetes Scheduler steuert Leistung, Kapazität und Verfügbarkeit von Ressourcen und Containern in einer bestimmten Kubernetes-Umgebung. Es ordnet jedem von Ihnen erstellten Pod einem geeigneten Satz von Ressourcen auf einem Knoten zu und verteilt Kopien von Pods auf verschiedene Knoten, um die Verfügbarkeit zu erhöhen. Es hält Affinitäts- und Anti-Affinitätsregeln und Dienstqualitätseinstellungen aufrecht.

Sie können den Kubernetes-Scheduler auf zwei Arten konfigurieren. Die PriorityFunction-Richtlinie weist den Scheduler an, Maschinen danach zu ordnen, auf welchen Knoten sie am besten passen, während die FitPredicate-Richtlinie festgelegten Prinzipien folgt.

Ingress. Ingress ist kein Load Balancer, führt jedoch Load-Balancing-Funktionen für eine Kubernetes-Umgebung aus. Es steuert den Verkehr zu und von Diensten sowie den externen Zugriff auf Dienste. Dafür richtet es einen externen Load-Balancer ein und leitet den Datenverkehr basierend auf einer Reihe von Regeln an diesen Dienst. Dadurch können Sie mehrere Backend-Dienste über dieselbe IP-Adresse nutzen.

Gitops. GitOps ist ein Kubernetes-zentrisches Paradigma für Entwickler und IT-Administratoren, das Git zum Verwalten von Clustern und Anwendungen verwendet. Es erfordert, dass Sie Git einsetzen, um Infrastruktur und Software bereitzustellen.

Sie können GitOps nutzen, um Continuous Deployment und Continuous Delivery für Kubernetes einzurichten. Das bedeutet, dass Sie Software schnell erstellen, testen und bereitstellen, ohne dass ein individuelles Bereitstellungssystem erforderlich ist. Es bietet Ihnen auch ein zentrales Framework für die Kontrolle der Infrastruktur, die Überwachung der Versionskontrolle und das Ändern von Konfigurationen.

Erfahren Sie mehr über Containervirtualisierung