Auswählen einer Computeoption für Kubernetes am Edge

Dieses Dokument diskutiert die Vor- und Nachteile verschiedener Optionen, die für die Erweiterung von Compute am Edge verfügbar sind. Die folgenden Überlegungen für jede Kubernetes-Option werden behandelt:

  • Betriebskosten. Der für die Wartung und den Betrieb der Kubernetes-Cluster erwartete Arbeitsaufwand.

  • Einfache Konfiguration. Der Schwierigkeitsgrad beim Konfigurieren und Bereitstellen eines Kubernetes-Clusters.

  • Flexibilität. Ein Maß dafür, wie anpassungsfähig die Kubernetes-Option ist, um eine benutzerdefinierte Konfiguration in eine vorhandene Infrastruktur am Edge zu integrieren.

  • Gemischter Knoten. Die Fähigkeit zum Ausführen eines Kubernetes-Clusters mit sowohl Linux- als auch Windows-Knoten.

Annahmen

  • Sie sind Clusteroperator und möchten die verschiedenen Optionen zum Ausführen von Kubernetes am Edge und für die Verwaltung von Clustern in Azure verstehen.

  • Sie verfügen über ein gutes Verständnis der vorhandenen Infrastruktur und aller anderen Infrastrukturanforderungen, einschließlich Speicher- und Netzwerkanforderungen.

Nachdem Sie dieses Dokument gelesen haben, befinden Sie sich in einer besseren Position, um zu ermitteln, welche Option am besten zu Ihrem Szenario und der erforderlichen Umgebung passt.

Kubernetes-Optionen auf einen Blick

Betriebskosten Einfache Konfiguration Flexibilität Gemischter Knoten Zusammenfassung
Bare-Metal-Kubernetes Hoch** Schwierig** Hoch** Ja Eine vollständig neue Konfiguration in jeder verfügbaren Infrastruktur am Standort mit der Option, Azure Arc für zusätzliche Azure-Funktionen zu verwenden.
K8s in Azure Stack Edge Pro Niedrig Einfach Niedrig Nur Linux Auf einem am Standort bereitgestellten Azure Stack Edge-Gerät bereitgestelltes Kubernetes.
AKS in HCI Niedrig Einfach Medium Ja In Azure Stack HCI oder unter Windows Server 2019 bereitgestelltes AKS.

*Andere verwaltete Edgeplattformen (OpenShift, Tanzu usw.) sind in diesem Dokument nicht enthalten.

**Diese Werte basieren der Einfachheit halber auf der Verwendung von kubeadm. Verschiedene Optionen zum Ausführen von Bare-Metal-Kubernetes am Edge würden die Bewertung in diesen Kategorien ändern.

Bare-Metal-Kubernetes

Vollständig neue Konfiguration von Kubernetes unter Verwendung von Tools wie kubeadm in jeder zugrunde liegenden Infrastruktur.

Die größten Einschränkungen für Bare-Metal-Kubernetes liegen im Bereich der spezifischen Anforderungen und Anforderungen der Organisation. Die Möglichkeit, jede Distribution, Netzwerkschnittstelle und jedes Plug-In zu verwenden, bedeutet eine höhere Komplexität bei höheren Betriebskosten. Aber es bietet die flexibelste Option zum Anpassen Ihres Clusters.

Szenario

Häufig unterliegen Edgestandorte bestimmten Anforderungen für die Ausführung von Kubernetes-Clustern, die mit den anderen in diesem Dokument beschriebenen Azure-Lösungen nicht zu erfüllen sind. Dies bedeutet, dass diese Option in der Regel am besten für diejenigen geeignet ist, die verwaltete Dienste aufgrund nicht unterstützter vorhandener Infrastruktur nicht verwenden können, oder für diejenigen, die versuchen, maximale Kontrolle über ihre Cluster zu haben.

  • Diese Option kann für Personen, die noch keine Erfahrungen mit Kubernetes haben, besonders schwierig sein. Dies ist bei Organisationen, die Edgecluster ausführen möchten, nicht ungewöhnlich. Optionen wie MicroK8s oder k3s sollen diese Lernkurve vereinfachen.

  • Es ist wichtig, alle zugrunde liegenden Infrastrukturen und Integrationen zu verstehen, die voraussichtlich im Voraus stattfinden sollen. Dies hilft dabei, realisierbare Optionen einzugrenzen und Lücken bei den Open-Source-Tools und/oder -Plug-Ins zu identifizieren.

  • Das Aktivieren von Clustern für Azure Arc bietet eine einfache Möglichkeit, Ihren Cluster zusammen mit anderen Ressourcen in Azure zu verwalten. Auf diese Weise werden auch weiter Azure-Funktionen in Ihren Cluster eingeführt, einschließlich Azure Policy, Azure Monitor, Microsoft Defender für Cloud und andere Dienste.

  • Da die Clusterkonfiguration nicht trivial ist, ist es besonders wichtig, auf CI/CD zu achten. Die Nachverfolgung von Upstreamänderungen an verschiedenen Plug-Ins sowie deren Umsetzung als auch das Sicherstellen, dass sich diese Änderungen nicht nachteilig auf die Integrität Ihres Clusters auswirken, wird zu einer direkten Verantwortlichkeit. Es ist wichtig, dass Sie über eine starke CI/CD-Lösung, starke Tests und eine strenge Überwachung verfügen.

Tooloptionen

Clusterbootstrap:

  • kubeadm: Kubernetes-Tool zum Erstellen vollständig neuer Kubernetes-Cluster. Gut geeignet für Standard-Computeressourcen (Linux/Windows).

  • MicroK8s: Vereinfachte Verwaltung und Konfiguration („LowOps“), konformes Kubernetes von Canonical

  • k3s: Zertifizierte Kubernetes-Distribution, die für das Internet der Dinge (IoT) und Edgecomputing konzipiert ist.

Speicher:

  • Erkunden der verfügbaren CSI-Treiber: Es sind zahlreiche Optionen verfügbar, um Ihre Anforderungen von cloudbasierten bis hin zu lokalen Dateifreigaben zu erfüllen.

Netzwerk:

  • Eine vollständige Liste der verfügbaren Add-Ons finden Sie hier: Netzwerk-Add-Ons. Einige beliebte Optionen sind unter anderem Flannel, ein einfaches Überlagerungsnetzwerk, und Calico, das einen vollständigen Netzwerkstapel bereitstellt.

Überlegungen

Betriebskosten:

  • Ohne die Unterstützung, die in verwalteten Diensten enthalten ist, liegt es an der Organisation, den Cluster als Ganzes zu verwalten und zu betreiben (Speicher, Netzwerk, Upgrades, Einblick, Anwendungsverwaltung). Die Betriebskosten werden als hoch angesehen.

Einfache Konfiguration:

  • Die Auswertung der vielen Open-Source-Optionen in jeder Phase der Konfiguration, seien es die Netzwerk-, Speicher- oder Überwachungsoptionen, ist unvermeidlich und kann komplex werden. Erfordert mehr Überlegungen zum Konfigurieren von CI/CD für die Clusterkonfiguration. Aufgrund dieser Bedenken wird die Einfachheit der Konfiguration als „schwierig“ betrachtet.

Flexibilität:

  • Mit der Möglichkeit, beliebige Open-Source-Tools oder -Plug-Ins ohne Anbietereinschränkungen zu verwenden, ist Bare-Metal-Kubernetes äußerst flexibel.

Kubernetes auf Azure Stack Edge-Geräten

Ein Kubernetes-Cluster (eine Master-VM und eine Worker-VM), der für Sie auf Ihrem Azure Stack Edge Pro-Gerät konfiguriert und bereitgestellt wird.

Azure Stack Edge Pro-Geräte stellen Azure-Funktionen wie Compute, Speicher, Netzwerke und hardwarebeschleunigtes Machine Learning (ML) an jedem Edgestandort bereit. Kubernetes-Cluster können erstellt werden, sobald die Compute-Rolle auf einem der Pro-GPU-, Pro-R- und Mini-R-Geräte aktiviert ist. Die Verwaltung von Upgrades des Kubernetes-Clusters kann mithilfe von Standardupdates erfolgen, die für das Gerät verfügbar sind.

Szenario

Ideal für Benutzer mit vorhandenen (Linux)-IoT-Workloads oder die ein Upgrade ihrer Computeressourcen für ML am Edge durchführen. Dies ist eine gute Option, wenn eine präzisere Kontrolle über die Cluster nicht erforderlich ist.

  • Administratorberechtigungen werden nicht standardmäßig erteilt. Obwohl Sie mit der Produktgruppe zusammenarbeiten können, um bestimmte Ausnahmen zu machen, ist es schwierig, eine feineren Kontrolle über Ihren Cluster auszuüben.

  • Es ergeben sich zusätzliche Kosten, wenn noch kein Azure Stack Edge-Gerät vorhanden ist. Sehen Sie sich Azure Stack Edge-Geräte an, und prüfen Sie, ob welche dabei sind, die Ihren Computeanforderungen entsprechen.

  • Calico, MetalLB und CoreDNS werden für Kubernetes-Netzwerke auf dem Gerät installiert.

  • Derzeit werden nur Linux-Workloads unterstützt.

  • Zusätzlich zu Kubernetes verfügt Azure Stack Edge auch über die IoT-Runtime, was bedeutet, dass Workloads auch in Ihren Azure Stack Edge-Clustern über IoT Edge bereitgestellt werden können.

  • Unterstützung für Cluster mit zwei Knoten ist derzeit nicht verfügbar. Dies bedeutet de facto, dass diese Option keine Hochverfügbarkeitslösung ist.

Überlegungen

Betriebskosten:

  • Aufgrund der mit dem Gerät einhergehenden Unterstützung sind die Betriebskosten minimal und auf den Bereich der Workloadverwaltung beschränkt.

Einfache Konfiguration:

  • Die vorkonfigurierte und gut dokumentierte Kubernetes-Clusterbereitstellung vereinfacht die erforderliche Konfiguration im Vergleich zu Bare-Metal-Kubernetes.

Flexibilität:

  • Die Konfiguration ist bereits festgelegt, und Administratorberechtigungen werden nicht standardmäßig erteilt. Die Einbeziehung der Produktgruppe kann über die grundlegende Konfiguration hinaus erforderlich sein, und die zugrunde liegende Infrastruktur muss ein Azure Stack Edge Pro-Gerät sein, was dies zu einer weniger flexiblen Option macht.

AKS in HCI

Hinweis: Diese Option ist derzeit als Vorschau verfügbar.

AKS-HCI ist eine Reihe vordefinierter Einstellungen und Konfigurationen, die verwendet werden, um einen oder mehrere Kubernetes-Cluster (mit Windows Admin Center oder PowerShell-Modulen) in einem Cluster mit mehreren Knoten bereitzustellen, auf dem Windows Server 2019 Datacenter oder Azure Stack HCI 20H2 ausgeführt wird.

Szenario

Ideal für diejenigen, die eine vereinfachte und optimierte Möglichkeit suchen, um einen von Microsoft unterstützten Cluster auf kompatiblen Geräten zu erhalten (Azure Stack HCI oder Windows Server 2019 Datacenter). Die Betriebs- und Konfigurationskomplexität ist auf Kosten der Flexibilität im Vergleich zur Bare-Metal-Kubernetes-Option geringer.

Überlegungen

Zum Zeitpunkt des Verfassens dieses Artikels besitzt die Vorschauversion noch zahlreiche Einschränkungen (Berechtigungen, Netzwerkeinschränkungen, umfangreiche Computeanforderungen und Dokumentationslücken). Von einer Verwendung zu anderen Zwecken als Evaluation und Entwicklung wird im Moment abgeraten.

Betriebskosten:

  • Von Microsoft unterstützte Cluster minimieren die Betriebskosten.

Einfache Konfiguration:

  • Die vorkonfigurierte und gut dokumentierte Kubernetes-Clusterbereitstellung vereinfacht die erforderliche Konfiguration im Vergleich zu Bare-Metal-Kubernetes.

Flexibilität:

  • Die Clusterkonfiguration selbst ist festgelegt, aber Administratorberechtigungen werden gewährt. Die zugrunde liegende Infrastruktur muss entweder Azure Stack HCI oder Windows Server 2019 sein. Diese Option ist flexibler als Kubernetes in Azure Stack Edge und weniger flexibel als Bare-Metal-Kubernetes.

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Artikeln: