Knative ermöglicht die Ausführung serverloser Workloads auf Kubernetes-Clustern. Es macht das Erstellen und Orchestrieren von Containern mit Kubernetes schneller und einfacher.
Knative (ausgesprochen Kay-NAY-tive) ist eine Erweiterung der Kubernetes-Container-Orchestrierungsplattform. Es bietet Tools und Dienstprogramme, die das Erstellen, Bereitstellen und Verwalten von containerisierten Anwendungen innerhalb von Kubernetes zu einer einfacheren und nativeren Erfahrung machen (daher der Name, „K“ für „Kubernetes“ + „native“).
Knative ist wie Kubernetes eine Open-Source-Software. Google entwickelte die Lösung zunächst in Zusammenarbeit mit IBM, Pivotal, Red Hat, SAP und fast 50 anderen Unternehmen. Heute hostet die cloudnativ Computing Foundation (CNCF) das Open Source-Projekt Knative.
Kubernetes automatisiert und plant die Bereitstellung, Verwaltung und Skalierung von Containern leichten, ausführbaren Komponenten, die den Quellcode mit allen Betriebssystembibliotheken und Abhängigkeiten kombinieren, die für die Ausführung des Codes in jeder Umgebung erforderlich sind.
Container ermöglichen es Anwendungskomponenten, die Ressourcen einer einzelnen Instanz eines Betriebssystems zu teilen, ähnlich wie virtuelle Maschinen (VMs) es Anwendungen ermöglichen, die Ressourcen eines einzelnen physischen Computers zu teilen. Container sind kleiner und ressourceneffizienter als VMs und besser für die inkrementellen Releasezyklen von flexiblen und DevOps-Entwicklungsmethoden geeignet. Sie sind de facto zu den typischen Recheneinheiten moderner cloudnativer Anwendungen geworden. Unternehmen, die Container verwenden, berichten von weiteren Nutzen, darunter eine verbesserte App-Qualität, ein höheres Maß an Innovation und mehr:
Da cloudnative Entwicklung immer beliebter wird und der Einsatz von Containern in Unternehmen zunimmt, machen die Container-Orchestrierungsfunktionen von Kubernetes, zu denen Terminplanung, Lastausgleich, Zustand und mehr gehören, diesen Trend viel einfacher zu verwalten. Kubernetes ist jedoch ein komplexes Tool, bei dem Entwickler viele sich wiederholende Aufgaben ausführen oder Vorlagen erstellen müssen, z. B. das Abrufen von Anwendungs-Quellcode aus Repositorys, das Erstellen und Bereitstellen eines Container um den Code herum und das Konfigurieren von Netzwerkverbindungen außerhalb von Kubernetes mit verschiedenen Tools. Die Integration von Kubernetes-verwalteten Containern in eine automatisierte CI/DC-Pipeline (Continuous Integration/Continuous Delivery ) erfordert spezielle Tools und benutzerdefinierte Codierung.
Knative beseitigt diese Komplexität mit Tools, die diese Aufgaben innerhalb von Kubernetes automatisieren. Ein Entwickler kann den Inhalt und die Konfiguration des Containers in einer einzigen YAML-Manifestdatei definieren, und Knative erledigt den Rest, erstellt den Container und führt die Netzwerkprogrammierung durch, um eine Route, den Eingang, den Lastausgleich und mehr einzurichten. Knative bietet auch eine Befehlszeilenschnittstelle, Knative CLI, mit der Entwickler auf Knative-Funktionen zugreifen können, ohne YAML-Dateien bearbeiten zu müssen.
Serverloses Computing ist ein cloudnativ Ausführungsmodell, das die Anwendungsentwicklung einfacher und kostengünstiger macht. Das Modell des serverlosen Computings
Kubernetes kann ohne spezielle Software, die Kubernetes in die serverlose Plattform eines bestimmten Cloud-Providers integriert, keine serverlosen Anwendungen ausführen. Knative ermöglicht es, dass jeder Container als serverlose Workload auf jedem Cluster läuft, unabhängig davon, ob der Container auf einer serverlosen Funktion oder einem anderen Anwendungscode (z. B. Microservice) basiert, indem der Code abstrahiert und das Netzwerkrouting, Ereignisauslöser und Auto-Scaling übernommen werden .
Knative setzt auf Kubernetes auf und fügt drei Hauptkomponenten oder Grundbausteine hinzu: Build, Serving und Eventing.
Die Knative Build-Komponente automatisiert die Umwandlung von Quellcode in einen Container. Dieser Prozess umfasst in der Regel mehrere Schritte, darunter:
Knative verwendet Kubernetes-APIs und andere Tools für seinen Build-Prozess. Ein Entwickler kann ein einzelnes Manifest (in der Regel eine YAML-Datei) erstellen, das alle Variablen spezifiziert — den Speicherort des Quellcodes, erforderliche Abhängigkeiten und mehr — und Knative verwendet das Manifest, um den Container-Build zu automatisieren.
Die Serving-Komponente stellt Container als skalierbare Knative-Dienste bereit und führt sie aus. Serving bietet die folgenden wesentlichen Funktionen:
Knative Serving leiht sich intelligentes Service-Routing von Istio, einer weiteren Anwendung im Kubernetes-Ökosystem. Istio ist ein Open-Source-Service-Mesh für Kubernetes und bietet auch Authentifizierung für Serviceanfragen, automatische Verschlüsselung des Datenverkehrs für eine sichere Kommunikation zwischen Diensten, detaillierte Metriken zu Microservices und serverlosen Funktionsvorgängen sowie andere Tools für Entwickler und Administratoren zur Optimierung der Infrastruktur.
Die Eventing-Komponente von Knative ermöglicht es verschiedenen Ereignissen, ihre Container-basierten Dienste und Funktionen auszulösen. Knative stellt diese Ereignisse in die Warteschlange und leitet sie an die entsprechenden Container weiter, sodass Sie für die Funktionalität keine Skripte schreiben oder Middleware implementieren müssen. Knative kümmert sich auch um Kanäle, bei denen es sich um Warteschlangen mit Veranstaltungen handelt, aus denen Entwickler wählen können, und den Bus, eine Messaging-Plattform, die Ereignisse an Container übermittelt. Es ermöglicht Entwicklern auch, Feeds einzurichten, die ein Ereignis mit einer Aktion verbinden, die ihre Container ausführen können.
Knative-Ereignisquellen erleichtern Entwicklern die Herstellung von Verbindungen zu Ereignisproduzenten von Drittanbietern. Knative Eventing stellt automatisch die Verbindung zum Event-Produzenten her und leitet die generierten Events weiter. Sie müssen nicht herausfinden, wie dies programmgesteuert funktioniert – Knative erledigt die ganze Arbeit.
Zusammenfassend lässt sich sagen, dass Knative mehrere Anwendungsfälle für Kubernetes-Benutzer unterstützt, die die Entwicklung von containerisierten Anwendungen vereinfachen oder die Nutzung von Containern auf die nächste Stufe heben möchten.
Kubernetes rationalisieren. Durch die Beseitigung sich wiederholender Build- und Konfigurationsaufgaben macht Knative Entwickler, die mit Kubernetes arbeiten, produktiver. Jedes Entwicklerteam, das mit der Verwaltung einer wachsenden Anzahl von Kubernetes-Clustern zu kämpfen hat, ist ein idealer Kandidat für Knative.
Beschleunigung der Entwicklung zu serverless. Die manuelle Einrichtung und Verwaltung serverloser Umgebungen kann schwierig sein. Knative ermöglicht es Unternehmen, serverlose Workloads schnell einzurichten. Die Entwickler erstellen lediglich einen Container – es ist Knative, das ihn als serverlose Funktion hinter den Kulissen ausführt.
Unterstützung von Agile- und DevOps-Lebenszyklen. Knative ermöglicht es Entwicklern, neue Container und Containerversionen schneller zu erstellen, und erleichtert so die Bereitstellung von containerisierten Anwendungen in kleinen, schnellen, iterativen Schritten als Teil eines flexiblen oder DevOps-Workflows. Knative Services lassen sich problemlos in automatisierte CI/CD-Pipelines integrieren, ohne dass spezielle Software oder benutzerdefinierte Programmierung erforderlich sind.
Reibungslose Einführung neuer Funktionen. Wenn Sie neue Versionen an Kunden ausliefern, können Softwareprobleme auftreten, die sich auf die Geschäftsprozesse auswirken können. Die Konfiguration und das Routing von Knative ermöglichen es den Entwicklern, neue Container-Revisionen einer Teilmenge der Benutzerbasis zugänglich zu machen. Im Laufe der Zeit wird die Zahl der Nutzer dann allmählich erhöht, während sie Probleme beheben oder bei Bedarf schnell auf ältere Versionen zurückgreifen.
Entwickler auf Codierung und Innovation konzentrieren. DevOps könnte es Entwicklern ermöglichen, ihre eigenen Umgebungen zu verwalten. Letztendlich möchten sich Entwickler jedoch auf die Erstellung fehlerfreier Software und innovativer neuer Funktionen konzentrieren und nicht auf die Konfiguration von Nachrichtenbuswarteschlangen zur Ereignisauslösung oder die Verwaltung der Skalierbarkeit von Containern. Mit Knative haben Entwickler mehr Zeit für das, was sie am besten können.
Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).
Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.
Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.