Was ist Kubernetes?

Abgeschlossen

Das entkoppelte Design von Microservices in Kombination mit der Atomarität von Containern ermöglicht es, Anwendungen zu skalieren, die auf die Nachfrage reagieren. In komplexen Lösungen wie der App für die Drohnenverfolgung geht der Prozess der Bereitstellung, Aktualisierung, Überwachung und Entfernung von Containern mit Herausforderungen einher.

Bevor wir uns ansehen, was in Kubernetes vorhanden ist, gibt es zwei Konzepte, die Sie zuerst verstehen sollten: Containerverwaltung und Orchestratoren.

Was ist die Containerverwaltung?

Die Containerverwaltung ist der Prozess zum Organisieren, Hinzufügen, Entfernen oder Aktualisieren einer großen Anzahl von Containern.

Die App für das Drohnentracking besteht aus mehreren Microservices, die für Aufgaben wie Zwischenspeicherung, Warteschlangen oder Datenverarbeitung zuständig sind. Alle Dienste werden in einem Container gehostet, der unabhängig voneinander bereitgestellt, aktualisiert und skaliert wird.

Darstellung eines Servers oder einer Anwendung, der bzw. die als Container für die Cloudbereitstellung repliziert wurde.

Mit der Website der App für die Drohnenverfolgung stellen Sie beispielsweise fest, dass Sie zu bestimmten Tageszeiten mehr Instanzen des Cachediensts der Website benötigen, um die Leistung zu gewährleisten, deshalb fügen Sie weitere Containerinstanzen des Cachediensts hinzu.

Angenommen, Sie haben die Anzahl der Zwischenspeicherungsinstanzen erhöht und müssen eine neue Version des Microservice bereitstellen. Sie müssen alle aktiven Container aktualisieren, um die neue Version zu verwenden.

Die Containerverwaltung unterstützt Sie bei diesen wiederholenden manuellen Aufgaben.

Was ist ein Container-Orchestrator?

Ein Containerorchestrator ist ein System, das Container-Apps automatisch bereitstellt und verwaltet. Im Rahmen der Verwaltung behandelt der Orchestrator die Skalierung dynamischer Änderungen in der Umgebung, um die Anzahl der bereitgestellten Instanzen der App zu erhöhen oder zu verringern. Der Orchestrator kann auch sicherstellen, dass alle bereitgestellten Containerinstanzen aktualisiert werden, wenn eine neue Version eines Diensts veröffentlicht wird.

Diagramm zeigt, wie die Anzahl der bereitgestellten Containerinstanzen bei steigender Nachfrage automatisch erhöht wird, und wie ein Orchestrator gewährleistet, dass alle bereitgestellten Instanzen mit den aktuellen Softwareversionen aktualisiert werden.

Definieren von Kubernetes

Kubernetes ist eine portier- und erweiterbare Open-Source-Plattform zum Verwalten und Orchestrieren von Workloads in Containern. Kubernetes vereinfacht komplexe Containerverwaltungsaufgaben und bietet Ihnen eine deklarative Konfiguration, mit der sich Container in verschiedenen Computeumgebungen orchestrieren lassen. Diese Orchestrierungsplattform ist genauso benutzerfreundlich und flexibel, wie Sie es möglicherweise bereits von Platform-as-a-Service(PaaS)- und Infrastructure-as-a-Service(IaaS)-Angeboten kennen.

Diagramm: Server, die in Form mehrerer Container in einem Kubernetes-Cluster repliziert sind.

Vorteile von Kubernetes

Die Vorteile von Kubernetes liegen in der Abstraktion von Aufgaben.

Darstellung, die drei Vorteile von Kubernetes auflistet: Selbstreparatur, dynamische Skalierung und parallele Updates.

Diese Aufgaben sind:

  • Die Selbstreparatur von Containern; z. B. das Neustarten ausgefallener Containern oder das Ersetzen von Containern

  • Die dynamische Hoch- oder Herunterskalierung der Anzahl bereitgestellter Container nach Bedarf

  • Die Automatisierung rollierender Updates und Rollbacks von Containern

  • Speicherverwaltung

  • Die Verwaltung des Netzwerkdatenverkehrs

  • Die Speicherung und Verwaltung vertraulicher Informationen wie Benutzernamen und Kennwörtern

Wichtig

Beachten Sie, dass alle zuvor genannten Aspekte von Kubernetes konfiguriert werden müssen und gute Kenntnisse der zugrunde liegenden Technologien voraussetzen. Beispielsweise müssen Sie mit Konzepten wie virtuellen Netzwerken, Lastenausgleichen und Reverseproxys vertraut sein, um Kubernetes-Netzwerke zu konfigurieren.

Überlegungen zu Kubernetes

Mit Kubernetes können Sie sich Ihr Rechenzentrum als eine große Computerressource vorstellen. Sie müssen sich keine Gedanken mehr darüber machen, wie und wo Sie Ihre Container bereitstellen, sondern nur darüber, wie Sie Ihre Apps nach Bedarf bereitstellen und skalieren.

Darstellung, die eine Liste von Kubernetes-Komponenten anzeigt, einschließlich Überwachung, Microservices, Datenbanken und Docker-Runtime.

Es ist jedoch wichtig zu verstehen, dass es sich bei Kubernetes nicht um eine einzelne installierte App handelt, die mit allen denkbaren Komponenten ausgestattet ist, die zur Verwaltung und Orchestrierung einer Containerlösung benötigt werden.

  • Aspekte, wie Bereitstellung, Skalierung, Lastenausgleich, Protokollierung und Überwachung, sind optional. Sie sind dafür verantwortlich, die beste Lösung zu finden, um diesen Aspekte gemäß Ihren Anforderungen gerecht zu werden.

  • Kubernetes schränkt die Arten von Apps nicht ein, die auf der Plattform ausgeführt werden können. Wenn Ihre App in einem Container ausgeführt werden kann, kann sie auch in Kubernetes ausgeführt werden. Ihre Entwickler müssen jedoch mit Konzepten wie Microservicesarchitekturen vertraut sein, um Containerlösungen optimal nutzen zu können.

  • Kubernetes bietet keine Middleware, Datenverarbeitungsframeworks, Datenbanken, Caches oder Clusterspeichersysteme. Alle diese Elemente werden als Container oder im Rahmen eines anderen Dienstangebots ausgeführt.

  • Damit Kubernetes Container ausführen kann, wird eine Containerruntime wie Docker oder containerd benötigt. Die Containerruntime ist das Objekt, das für die Verwaltung von Containern zuständig ist. Die Containerruntime startet und beendet beispielsweise den Status des Containers und meldet diesen.

  • Sie sind für die Verwaltung Ihrer Kubernetes-Umgebung verantwortlich. Beispielsweise müssen Sie Betriebssystem-Upgrades und die Installation und Upgrades von Kubernetes verwalten. Sie verwalten außerdem die Hardwarekonfiguration der Hostcomputer, wie Netzwerk, Arbeitsspeicher und Speicher.

Clouddienste wie z. B. Azure Kubernetes Service (AKS) vereinfachen diese Herausforderungen durch die Bereitstellung einer gehosteten Kubernetes-Umgebung. Diese Dienste erleichtern außerdem das Bereitstellen und Verwalten von Container-Apps in Azure. Mit AKS erhalten Sie die Vorteile von Open-Source-Kubernetes ohne die Komplexität oder den operativen Mehraufwand beim Betrieb eines eigenen, benutzerdefinierten Kubernetes-Clusters.

Hinweis

Kubernetes wird manchmal als K8s abgekürzt. Die 8 steht für die acht Zeichen zwischen dem K und dem s des Worts K[ubernete]s.