Zum Inhalt springen
BlogContainer (Kubernetes, Docker)Verwalten von serverlosen Kubernetes-Anwendungen mit Knative

Verwalten von serverlosen Kubernetes-Anwendungen mit Knative

Verwalten von serverlosen Kubernetes-Anwendungen mit Knative blog image

Kurz gesagt: Bei der serverlosen Architektur müssen Entwickler keine Server mehr verwalten. Die Server laufen weiterhin im Hintergrund, aber die Last der Wartung und Skalierung ihrer Infrastruktur wird auf den Cloudanbieter verlagert. Entwickler sind in der Lage, ihren Code deutlich zu straffen und auf bestimmte Funktionen zu beschränken, und profitieren in der Regel von einem "On-Demand"-Kostenmodell, bei dem sie nur für Ressourcen zahlen, wenn eine Funktion ausgeführt wird.

Eine Funktion wird ausgeführt, wenn API-Endpunkte Ereignisse auslösen. Dadurch können Anwendungen mit unvorhersehbaren oder sich schnell ändernden Zuständen mit von der Hauptanwendung abstrahierten Funktionen horizontal skaliert werden. In der Praxis könnte eine Funktion ausgelöst werden, wenn ein Kunde ein Produkt auf einer E-Commerce-Website auswählt, um in einer Datenbank zu prüfen, ob das Produkt vorrätig ist, und um die aktuellsten Preisinformationen abzurufen.

Knative ist ein leistungsstarkes Funktions-Toolset, das auf Kubernetes aufbaut, um serverlose Anwendungen zu verwalten. Knative ermöglicht es Ihrem Kubernetes-Cluster, Pods auf Null zu skalieren und gleichzeitig Ressourcen zur Verfügung zu stellen, sodass Pods bei Bedarf skaliert werden können.

Knative unterstützt Ereignisse und Auslöser, die angepasst werden können, um zu steuern, wie Ihre Anwendung reagiert. Es ist ein portables, herstellerunabhängiges Tool, das Sie mit Ihrem bevorzugten verwalteten Kubernetes-Dienst (wie unserer eigenen Linode Kubernetes Engine) verwenden oder auf einem lokalen Cluster installieren können. Zusammen optimieren Kubernetes und diese installierbare Funktionsplattform die Vorteile der Zustandsverwaltung und Selbstheilung, die sich aus der Ausführung einer Anwendung auf Kubernetes ergeben.

Knative bietet:

  • Automatische Skalierung: Knative bietet eine automatische Skalierung von Pods auf der Grundlage von Datenverkehr und Bedarf, einschließlich einer Skalierung auf Null. Dies verbessert die Ressourcenauslastung und senkt die Kosten.
  • Ereignisgesteuertes Rechnen: Knative ermöglicht es serverlosen Workloads, auf Ereignisse und Auslöser zu reagieren.
  • Übertragbarkeit: Knative ist so konzipiert, dass es über verschiedene Cloudanbieter und Umgebungen hinweg funktioniert. Dies ermöglicht es Entwicklern, serverlose Anwendungen ohne Codeänderungen in verschiedenen Umgebungen einzusetzen.
  • Erweiterbarkeit: Knative bietet eine Reihe von Bausteinen, die an die spezifischen Anforderungen der Anwendung angepasst werden können.
  • Skalierbarkeit für Unternehmen: Unternehmen wie Puppet und Outfit7 vertrauen auf Knative.

Wie es funktioniert

Die Funktionalität von Knative ist unterteilt in Knative Eventing und Knative Serving.

  • Ereignisse: Sammlung von APIs, die Senken oder die Weiterleitung von Ereignissen von Ereignisproduzenten an Ereignisverbraucher über HTTP-POST-Anfragen ermöglichen.
  • Servieren: Definieren einer Reihe von Objekten als benutzerdefinierte Kubernetes-Ressourcen-Definitionen (CRDs) oder Erstellen einer Erweiterung der Kubernetes-API. Dadurch wird festgelegt, wie eine serverlose Arbeitslast mit Ihrem Kubernetes-Cluster mit den folgenden Ressourcen interagiert.
    • Leitwege: Zuordnung von Netzendpunkten zu Revisionsendpunkten und Verkehrsmanagement. 
    • Konfigurationen: Bewahrt den gewünschten Zustand als eine vom Code getrennte Schicht.
    • Revisionen: Ein Schnappschuss Ihres Codes und Ihrer Konfiguration für jede Änderung und Modifikation.
    • Dienste: Workload-Management, das die Objekterstellung steuert und sicherstellt, dass Ihre App ständig eine Route, eine Konfiguration und eine Revision hat, die entweder der neuesten Revision oder einer bestimmten Revision entspricht. Knative verwendet standardmäßig den Istio-Gateway-Dienst.
Das Diagramm zeigt die Schichten eines Kubernetes-Clusters. Istio ist das Dienstnetz, das für die Weiterleitung von Anfragen und den Lastausgleich sorgt. Knative sitzt mit seiner Eventing- und Serving-Funktionalität in der Mitte, und der Kubernetes-Cluster befindet sich an der Basis.
Knative verwendet Kubernetes als Orchestrator und Istio übernimmt das Query Routing und den Lastausgleich.

Sie können Knative mit YAML oder dem Knative Operator für Kubernetes in Ihrem Cluster installieren. Es gibt auch Knative Helm-Diagramme, die von Kubernetes-Community-Mitgliedern eingereicht wurden. Knative hat eine Schnellstartumgebung, die aber nur zu Testzwecken empfohlen wird.

Erste Schritte mit der Akamai Cloud

Knative ist eine hervorragende Ergänzung zu dem in LKE integrierten Autoscaler, mit dem Sie die minimale und maximale Anzahl von Nodes innerhalb des Node-Pools eines Clusters einfach steuern können. Der gemeinsame Einsatz von Knative und dem Autoscaler ermöglicht eine fein abgestimmte Verwaltung sowohl auf Pod- als auch auf Infrastrukturebene.

Und um Ihnen den Einstieg zu erleichtern, haben wir einen neuen On-Demand-Kurs für Sie! Wir haben uns mit Justin Mitchel von Coding for Entrepreneurs für unseren neuen On-Demand-Kurs Try Knative zusammengetan, der am 28. Februar 2023 verfügbar ist. Diese Videoserie umfasst die Erstellung eines Kubernetes-Clusters mit Terraform, die Konfiguration eines Knative-Dienstes und die Bereitstellung einer containerisierten Anwendung.


Kommentare (1)

  1. Author Photo

    It was helpful

Kommentar abgeben

Ihre E-Mail Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit *gekennzeichnet