© Navalnyi/Shutterstock.com
Erste Schritte für das Erstellen von Serverless-Anwendungen mit Knative

Auf die Theorie folgt die Praxis


Nachdem Michael Thömmes in Ausgabe 1.2019 des Entwickler Magazins eine theoretische Einführung in die Funktionsweise von Knative gegeben hat, folgt nun der praktische Teil. In diesem Artikel werden die ersten Schritte für das Erstellen von Serverless-Anwendungen mit Knative vorgestellt.

Im ersten Teil des Artikels werden wir uns mit dem Aufsetzen einer Entwicklungsumgebung beschäftigen, die für Knative in Version 0.6.0 geeignet ist. Im zweiten Teil geht es dann um das Deployment des ersten eigenen Serverless Microservice. Grundvoraussetzung für die Nutzung von Knative für das Erstellen von Serverless-Anwendungen ist eine solide Kenntnis von Kubernetes. Wer darin noch unerfahren ist, sollte das offizielle Basis-tutorial von Kubernetes [1] absolvieren. Bevor es ans Eingemachte geht, müssen noch ein paar Tools und Utilities installiert werden:

  • Minikube [2]

  • kubectl [3]

  • kubens [4]

Für Windows-Nutzer hat sich WSL [5] als ziemlich nützlich erwiesen, ich empfehle, das auch noch zu installieren.

Aufsetzen von Minikube

Minikube ist ein Kubernetes-Cluster mit einem einzigen Knoten, der sich hervorragend für die alltägliche Entwicklung mit Kubernetes eignet. Nach der Installation müssen die folgenden Schritte durchgeführt werden, um Minikube fit für ein Deployment mit Knative Serving zu machen. Wie das im Code aussieht, zeigt Listing 1.

Listing 1

minikube profile knative minikube start -p knative --memory=8192 --cpus=6 \ --kubernetes-version=v1.12.0 \ --disk-size=50g \ --extra-config=apiserver.enable-admission-plugins="LimitRanger,NamespaceExists,NamespaceLifecycle,ResourceQuota,ServiceAccount,DefaultStorageClass,MutatingAdmissionWebhook" 

Zunächst muss ein Minikube-Profil angelegt werden, wofür die erste Zeile steht. Anschließend wird mit dem zweiten Befehl eine Minikube-Instanz aufgesetzt, die 8 GB RAM, 6 CPUs und 50 GB Festplattenspeicher erhält. Der Startbefehl beinhaltet zudem ein paar zusätzliche Konfigurationen für den Kubernetes-Cluster, die nötig sind, um Knative zum Laufen zu bekommen. Wichtig ist auch, dass die verwendete Kubernetes-Version nicht älter als Version 1.12.0 ist, sonst funktioniert Knative nicht. Startet Minikube nicht sofort, ist das völlig normal: Es kann ein paar Minuten dauern, bis der initiale Start abgeschlossen ist, ein wenig Geduld sollte man beim Aufsetzen also mitbringen.

Aufsetzen eines Istio Ingress Gateways

Knative benötigt ein Ingress Gateway, um Requests an Knative Services zu routen. Neben Istio [6] wird auch Gloo [7] als ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang