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 Anwendung für das Drohnentracking geht der Prozess der Bereitstellung, Aktualisierung, Überwachung und Entfernung von Containern mit gewissen Herausforderungen einher.

Bevor Sie sich ansehen, was in Kubernetes 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.

Diagram of a server or application replicated as containers for cloud deployment.

Bei der Website der App für das Drohnentracking stellen Sie beispielsweise fest, dass Sie zu bestimmten Tageszeiten mehr Instanzen des Cachediensts der Website benötigen, um die Leistung zu gewährleisten, also 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.

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

Definieren von Kubernetes

Kubernetes ist eine portier- und erweiterbare Open-Source-Plattform zu Ihrer Verwaltung und Orchestrierung 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.

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Vorteile von Kubernetes

Die Vorteile von Kubernetes liegen in der Abstraktion von Aufgaben.

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling 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.

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the 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.