Was ist Azure Kubernetes Service?

Abgeschlossen

Beginnen wir mit einigen Definitionen und einer kurzen Einführung in Azure Kubernetes Service (AKS). Diese Übersicht enthält Informationen, mit denen Sie entscheiden können, ob AKS eine geeignete Plattform für Ihre Strategie zur Verwaltung der Containerisierung ist.

Was ist ein Container?

Ein Container ist eine kleine Einheit von Software, die Code, Abhängigkeiten und Konfiguration für eine bestimmte Anwendung bündelt. Mit Containern können Sie monolithische Anwendungen in einzelne Services aufteilen, aus denen sich die Lösung zusammensetzt. Diese Neugestaltung der Anwendung ermöglicht es Ihnen, diese separaten Dienste dann über Container bereitzustellen.

Diagram that shows server or application replicated as containers for cloud deployment.

Gute Gründe für die Verwendung eines Containers

Angenommen, Ihre Lösung für die Ressourcennachverfolgung umfasste drei Hauptanwendungen:

  • Eine Website für die Nachverfolgung, die Zuordnungen und Informationen zu den nachverfolgten Ressourcen enthält.

  • Ein Datenverarbeitungsdienst, der die von nachverfolgten Ressourcen gesendeten Informationen sammelt und verarbeitet.

  • Eine MSSQL-Datenbank zum Speichern der Benutzerinformationen, die auf der Website erfasst werden.

Sie stellen fest, dass Sie Ihre Lösung aufskalieren müssen, um den Kundenanforderungen gerecht zu werden.

VMs (virtuelle Computer)

Eine Möglichkeit besteht darin, eine neue VM für jede Anwendung bereitzustellen, die für mehrere Regionen gehostet wird. Kopieren Sie dann die Anwendungen auf die neuen VMs. Dadurch sind Sie jedoch für die Verwaltung jeder verwendeten VM verantwortlich.

Der Wartungsaufwand erhöht sich bei der Skalierung. Versionen der VM-Betriebssysteme und Abhängigkeiten müssen für jede Anwendung bereitgestellt und entsprechend konfiguriert werden. Wenn Sie für Ihre Anwendungen Upgrades durchführen, die sich auf das Betriebssystem auswirken und wichtige Änderungen nach sich ziehen, gelten Vorsichtsmaßnahmen. Wenn während des Upgrades Fehler auftreten, ist ein Rollback der Installation erforderlich. Dies verursacht Unterbrechungen, z. B. Ausfallzeiten oder Verzögerungen.

Diagram that shows replicated servers as VMs in the cloud and how the problem raises migration questions and problems.

Die im letzten Diagramm gezeigte Bereitstellung ist kompliziert, manchmal fehleranfällig und skaliert einzelne Dienste nicht so einfach. Beispielsweise ist es nicht ohne Weiteres möglich, nur den in der Webanwendung verwendeten Cachedienst zu skalieren. Mit Containern können Sie diese Art von Problemen lösen.

Das Containerkonzept bietet Ihnen drei wesentliche Vorteile:

  1. Unveränderlichkeit: Dank ihrer Beständigkeit können Container in unterschiedlichen Computeumgebungen zuverlässig und mit demselben Verhalten bereitgestellt und ausgeführt werden. Ein in einer QA-Umgebung getestetes Containerimage entspricht dem Image, das in der Produktionsumgebung bereitgestellt wird.

  2. Kleinere Größe: Ein Container ähnelt einer VM, aber ohne den Kernel für jeden Computer. Stattdessen teilen sie sich einen Hostkernel. VMs verwenden eine große Imagedatei, um sowohl das Betriebssystem als auch die Anwendung zu speichern, die Sie ausführen möchten. Im Gegensatz dazu benötigt ein Container kein Betriebssystem, sondern nur die Anwendung.

  3. Schlank: Der Container verwendet immer das auf dem Host installierte Betriebssystem für kernelspezifische Dienste. Die schlanke Eigenschaft macht Container weniger ressourcenintensiv, sodass die Installation mehrerer Container in derselben Compute-Umgebung möglich ist.

  4. Der Start ist schnell – Container starten in wenigen Sekunden, im Gegensatz zu virtuellen Computern, die Minuten brauchen können, bis sie gestartet werden.

Die oben genannten Vorteile machen Container zu einer beliebten Option für Entwickler und IT-Abteilungen. Sie sind der Grund, warum viele Organisationen von VMs auf Container umgestiegen sind.

Was ist die Containerverwaltung?

Diagram that shows replicated servers as multiple containers in the cloud.

Container ähneln VMs in ihrer Funktionsweise, sie haben jedoch andere Zwecke. Ein Container verfügt über einen bestimmten Lebenszyklus, der als temporärer Computer existiert. Sein Status durchläuft die Phasen „ausstehend“, „aktiv“ und „beendet“. Wegen dieses Lebenszyklus können Container einfacher wieder aufgelöst werden. Der Lebenszyklus beeinflusst auch, wie Entwickler und IT-Abteilungen die Verwaltung von großen, verbundenen Anwendungen planen. Die Containerverwaltung umfasst das Bereitstellen, Aktualisieren, Überwachen und Entfernen von Containern.

Nehmen wir zum Beispiel an, Sie stellen fest, dass mittags mehr Datenverkehr auf der Website herrscht und Sie daher mehr Instanzen des Cachediensts der Website benötigen, um die Leistung zu steuern. Sie möchten dieses Problem beheben, indem Sie zusätzliche Container für den Cachedienst hinzufügen.

Jetzt müssen Sie eine neue Version Ihres Cachedienstes einführen. Wie führen Sie das Update für alle Container durch? Wie entfernen Sie alle älteren Versionen?

Diese Aspekte des Lastenausgleichs erfordern ein System für die Verwaltung Ihrer Containerbereitstellung.

Was ist Kubernetes?

Kubernetes ist eine portable, erweiterbare Open-Source-Plattform zur Automatisierung von Bereitstellung, Skalierung und Verwaltung von containerisierten Workloads. Kubernetes abstrahiert die komplexe Containerverwaltung und bietet uns eine deklarative Konfiguration zur Orchestrierung von Containern in verschiedenen Compute-Umgebungen. Diese Orchestrierungsplattform ist genauso benutzerfreundlich und flexibel wie Platform-as-a-Service (PaaS) und Infrastructure-as-a-Service (IaaS).

Diagram that shows replicated servers as multiple containers in a Kubernetes cluster.

Mit Kubernetes können Sie Ihr Rechenzentrum als einen großen Computer betrachten. Sie müssen sich keine Gedanken darüber machen, wie und wo Sie Ihre Container bereitstellen, sondern nur darüber, wie Sie Ihre Anwendungen bei Bedarf bereitstellen und skalieren.

Im Folgenden finden Sie einige zusätzliche Aspekte, die Sie bei Kubernetes berücksichtigen sollten:

  • Kubernetes ist kein vollständiges PaaS-Angebot. Es arbeitet auf Containerebene und bietet nur einen allgemeinen Satz von PaaS-Funktionen.

  • Kubernetes ist nicht monolithisch. Es ist keine einzelne installierte Anwendung. Aspekte, wie Bereitstellung, Skalierung, Lastenausgleich, Protokollierung und Überwachung, sind optional.

  • Kubernetes schränkt die Arten der ausgeführten Anwendungen nicht ein. Wenn Ihre Anwendung in einem Container ausgeführt werden kann, ist sie für Kubernetes geeignet.

  • Ihre Entwickler müssen mit Konzepten wie beispielsweise Microservice-Architektur 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.

  • Eine Kubernetes-Bereitstellung ist als Cluster konfiguriert. Ein Cluster besteht aus mindestens einem primären Computer oder einer Steuerungsebene und mindestens einem Workercomputer. Die empfohlene Produktionskonfiguration ist eine Bereitstellung mit Hochverfügbarkeit und drei bis fünf replizierten Computern, die als Steuerungsebene fungieren. Diese Workercomputer werden auch als Knoten oder Agentenknoten bezeichnet.

Kubernetes bietet zahlreiche Vorteile, und Sie sind dafür verantwortlich, die beste Lösung für Ihre spezifischen Anforderungen zu finden. Denken Sie daran, dass Sie für die Wartung Ihres Kubernetes-Clusters verantwortlich sind. 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.

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.

Was ist Azure Kubernetes Service (AKS)?

Diagram that shows replicated servers as multiple containers in an AKS Kubernetes cluster.

AKS verwaltet Ihre gehostete Kubernetes-Umgebung und vereinfacht die Bereitstellung und Verwaltung von containerisierten Anwendungen in Azure. Ihre AKS-Umgebung ist mit Features wie automatischen Updates, Selbstreparatur und einfacher Skalierung ausgestattet. Azure verwaltet die Steuerungsebene Ihres Kubernetes-Clusters kostenlos. Sie verwalten die Agent-Knoten im Cluster und bezahlen nur für die VMs, auf denen Ihre Knoten ausgeführt werden.

Sie können Ihren Cluster im Azure-Portal oder mit der Azure CLI erstellen und verwalten. Beim Erstellen des Clusters sind Resource Manager-Vorlagen zur Automatisierung verfügbar. Mit diesen Vorlagen haben Sie Zugriff auf Funktionen wie erweiterte Netzwerkoptionen, Microsoft Entra Identity und Ressourcenüberwachung. Anschließend können Sie Auslöser und Ereignisse einrichten, um die Clusterbereitstellung für mehrere Szenarien zu automatisieren.

Mit AKS erhalten Sie die Vorteile von Open-Source-Kubernetes ohne die zusätzliche Komplexität oder den betrieblichen Aufwand, den nur Kubernetes mit sich bringen kann.