© Excellent backgrounds/Shutterstock.com
Java Magazin
Netzwerk-Plug-in für Kubernetes

Welches ist das richtige?

Das Open-Source-System Kubernetes von Google dient der Orchestrierung von Containern - von der Bereitstellung über die Sicherstellung der Verfügbarkeit bis hin zur Skalierung. Um diese und weitere Features nutzen zu können, benötigt der Betreiber des Kubernetes-Clusters ein Netzwerk-Plug-in. Natürlich gibt es mehrere Möglichkeiten bei der Wahl des Plug-ins, deswegen sollte sie gut überlegt sein.

Mahmoud Reza Rahbar Azad


Manchmal führen neue Entwicklungen zur Renaissance von Bewährtem: Um der Komplexität moderner Softwarearchitekturen zu begegnen, werden Microservices auf der Basis einheitlicher Prinzipien entwickelt. Gerade im Zuge von Cloud-Native-Anwendungen kommt heute das sogenannte Zwölf-Faktoren-App-Manifest (Twelve-­Factor App) [1] wieder immer häufiger zur Anwendung. Das Manifest besteht aus einer Ansammlung von Best Practices. Darunter fallen unter anderem die starke Parität zwischen der Entwicklung und dem Betrieb, um Fehler frühzeitig zu entdecken, und die horizontale Skalierbarkeit von Anwendungen, damit sich Lastspitzen entgegenwirken lassen. Darüber hinaus führt das Manifest Prinzipien zum Betrieb von Anwendungen auf, wie etwa die Empfehlung, einen sauberen Vertrag mit dem zugrunde liegenden Betriebssystem aufzusetzen, um eine hohe Portierbarkeit zwischen Ausführungsumgebungen zu bieten.

Möchte man Kubernetes nutzen, macht es sich bezahlt, wenn die Anwendungen auf der Basis solcher Prinzipien entwickelt wurden. Denn die Features von Kubernetes können dann besonders gut zum Einsatz kommen. So lassen sich die Pods – so heißen die Basiseinheiten, in denen die Container ausgeführt werden – beispielsweise automatisch anhand bestimmter vordefinierter CPU-Metriken skalieren. Ebenso ist Kubernetes in der Lage, das Konfigurations- und Secret-Management anhand von ConfigMaps oder Secret zu übernehmen. Die Service-Discovery von Kubernetes und die Art und Weise, wie dies in einem Kubernetes-Cluster funktioniert, dient als unser Beispiel: In der Anwendung beryll-service soll die Anwendung amber-service aufgerufen werden. Dafür wird zunächst eine Kubernetes-Servicekomponente erstellt und zuvor so konfiguriert, dass sie über Label-Matching die amber-service-Pods referenziert. Kubernetes wird anschließend über das Cluster-Add-on kube-dns sicherstellen, dass im Cluster der DNS A Record [2] amber-service mit der ClusterIP des Service aufgelöst wird, z. B. 10.254.0.1 (Abb. 1).

Abb. 1: Darstellung der Service-Discovery im Kubernetes-Cluster anhand eines Netzwerkaufrufs von „beryll-service“ zu „amber-service“

Listing 1: Prüfung der DNS-Namens­auflösung über einen Testcontainer> kubectl -n demo exec busybox -- nslookup amber-serviceServer: 10.254.0.10Address 1: 10.254.0.10 kube-dns.kube-system.svc.cluster-local Name: amber-serviceAddress 1: 10.254.0.1 amber-service.demo.svc.cluster-local

Diese ClusterIP wiederum wird über den Kubernetes-Service kube-proxy, der auf jedem Kn...

Java Magazin
Netzwerk-Plug-in für Kubernetes

Welches ist das richtige?

Das Open-Source-System Kubernetes von Google dient der Orchestrierung von Containern - von der Bereitstellung über die Sicherstellung der Verfügbarkeit bis hin zur Skalierung. Um diese und weitere Features nutzen zu können, benötigt der Betreiber des Kubernetes-Clusters ein Netzwerk-Plug-in. Natürlich gibt es mehrere Möglichkeiten bei der Wahl des Plug-ins, deswegen sollte sie gut überlegt sein.

Mahmoud Reza Rahbar Azad


Manchmal führen neue Entwicklungen zur Renaissance von Bewährtem: Um der Komplexität moderner Softwarearchitekturen zu begegnen, werden Microservices auf der Basis einheitlicher Prinzipien entwickelt. Gerade im Zuge von Cloud-Native-Anwendungen kommt heute das sogenannte Zwölf-Faktoren-App-Manifest (Twelve-­Factor App) [1] wieder immer häufiger zur Anwendung. Das Manifest besteht aus einer Ansammlung von Best Practices. Darunter fallen unter anderem die starke Parität zwischen der Entwicklung und dem Betrieb, um Fehler frühzeitig zu entdecken, und die horizontale Skalierbarkeit von Anwendungen, damit sich Lastspitzen entgegenwirken lassen. Darüber hinaus führt das Manifest Prinzipien zum Betrieb von Anwendungen auf, wie etwa die Empfehlung, einen sauberen Vertrag mit dem zugrunde liegenden Betriebssystem aufzusetzen, um eine hohe Portierbarkeit zwischen Ausführungsumgebungen zu bieten.

Möchte man Kubernetes nutzen, macht es sich bezahlt, wenn die Anwendungen auf der Basis solcher Prinzipien entwickelt wurden. Denn die Features von Kubernetes können dann besonders gut zum Einsatz kommen. So lassen sich die Pods – so heißen die Basiseinheiten, in denen die Container ausgeführt werden – beispielsweise automatisch anhand bestimmter vordefinierter CPU-Metriken skalieren. Ebenso ist Kubernetes in der Lage, das Konfigurations- und Secret-Management anhand von ConfigMaps oder Secret zu übernehmen. Die Service-Discovery von Kubernetes und die Art und Weise, wie dies in einem Kubernetes-Cluster funktioniert, dient als unser Beispiel: In der Anwendung beryll-service soll die Anwendung amber-service aufgerufen werden. Dafür wird zunächst eine Kubernetes-Servicekomponente erstellt und zuvor so konfiguriert, dass sie über Label-Matching die amber-service-Pods referenziert. Kubernetes wird anschließend über das Cluster-Add-on kube-dns sicherstellen, dass im Cluster der DNS A Record [2] amber-service mit der ClusterIP des Service aufgelöst wird, z. B. 10.254.0.1 (Abb. 1).

Abb. 1: Darstellung der Service-Discovery im Kubernetes-Cluster anhand eines Netzwerkaufrufs von „beryll-service“ zu „amber-service“

Listing 1: Prüfung der DNS-Namens­auflösung über einen Testcontainer> kubectl -n demo exec busybox -- nslookup amber-serviceServer: 10.254.0.10Address 1: 10.254.0.10 kube-dns.kube-system.svc.cluster-local Name: amber-serviceAddress 1: 10.254.0.1 amber-service.demo.svc.cluster-local

Diese ClusterIP wiederum wird über den Kubernetes-Service kube-proxy, der auf jedem Kn...

Neugierig geworden?


    
Loading...

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