Was ist der Java-Client für Kubernetes?

URL kopieren

Der Kubernetes Java™-Client ist eine Client-Library, die die Verwendung der Programmiersprache Java für die Schnittstelle zu Kubernetes ermöglicht. Der Java-Client basiert auf der Kubernetes REST-API und bietet programmatischen Zugriff auf Kubernetes. Er ermöglicht das Erstellen, Ändern und Löschen verschiedener Ressourcen innerhalb eines Kubernetes-Clusters, Skalierung von Deployments, Befehlsausführung und Ereignisüberwachung. 

Kubernetes ist eine Open-Source-Plattform für die Container-Orchestrierung, die Deployment, Verwaltung und Skalierung containerisierter Anwendungen automatisiert. Kubernetes Client-Libraries können Aufgaben wie die Authentifizierung übernehmen und erleichtern in die Entwicklung von Anwendungen, die die Kubernetes-API nutzen.

Das älteste und am weitesten verbreitete Client-Framework ist der offizielle Kubernetes Go-Client, genannt Client-go. Client-go wird von Kubernetes selbst, aber auch von anderen Distributionen und Plattformen wie Red Hat® OpenShift verwendet. Weitere beliebte Clients sind sowohl offizielle als auch von der Community betreute Client-Libraries für eine Vielzahl von Programmiersprachen. Es gibt zwar mehrere Community Java-Clients für Kubernetes, der Kubernetes Java-Client ist jedoch die offizielle, von der Kubernetes API Machinery Special Interest Group betreute Client-Library.

In den letzten Jahren haben sich Entwicklungsteams zugunsten vielseitigerer, cloudnativer Anwendungen von monolithischen Architekturen distanziert. Viele Unternehmen, die ihre veralteten Java-Anwendungen modernisieren wollen, entscheiden sich für ein Cloud-Deployment-Modell. Als wesentlicher Bestandteil der Modernisierung von Java-Anwendungen beinhaltet cloudnatives Java häufig den Einsatz einer Container-Orchestrierungsplattform wie Kubernetes für effiziente Verwaltung, Deployment und Skalierung von Anwendungen. 

Obwohl containerisierte Anwendungen nicht immer mit der Kubernetes-API kommunizieren müssen, gibt es viele Use Cases, in denen API-Aufrufe zur Erfüllung einer bestimmten Aufgabe erforderlich sind. Wenn Sie bei der Verwaltung von Kubernetes-Clustern einen DIY-Ansatz verwenden, statt einer Plattform wie Red Hat OpenShift und einer Komponente wie Red Hat Advanced Cluster Management for Kubernetes, können Sie den offiziellen Java-Client zur Kommunikation mit der Kubernetes-API für die folgenden Use Cases nutzen:

  • Management Ihrer Anwendungen
  • Skalierung und Auto-Skalierung
  • Monitoring, Alarmierung und Protokollierung
  • Einrichtung von Continuous Deployment (CD)
  • Erweiterung der Kubernetes-API mit benutzerdefinierten Operatoren
  • Cluster-Administration
  • Management Ihrer Hybrid Cloud

Da Kubernetes und viele zugehörige Tools und Libraries in Golang geschrieben sind, kann die Umstellung auf cloudnative Entwicklung in Kubernetes zusätzliche Trainings und Ressourcen erfordern, falls das Entwicklungspersonal eines Unternehmens über keine Golang-Kenntnisse verfügt. Für Unternehmen mit bestehenden Java-Anwendungen oder Entwicklungspersonal mit Java-Kenntnissen entfällt mit dem Kubernetes Java-Client die Notwendigkeit des Erlernens einer neuen Programmiersprache, und der Übergang zur cloudnativen Entwicklung wird vereinfacht.

Red Hat Ressourcen

Obwohl der offizielle Kubernetes Java-Client bei der Java-Entwicklung als die beste Wahl erscheint, gibt es weitere Optionen, die Betrieb und Verwaltung von Kubernetes-Clustern erleichtern.

Kubernetes REST-API & kubectl
Die Kubernetes REST-API dient als Frontend der Kubernetes-Control Plane und wird zur Verwaltung, Erstellung und Konfiguration der Kubernetes-Cluster verwendet. Sie können mit der API interagieren, indem Sie das Kubernetes-Befehlszeilen-Tool kubectl verwenden, um API-Aufrufe zu tätigen und Kubernetes-Ressourcen zu verwalten. Mithilfe eines http-Clients wie curl oder Wget können Sie auch direkt auf die REST-API zugreifen.

Fabric8 Java-Client
Der Fabric8 Java-Client ist eine von der Community betreute Client-Library und die älteste Java-Library für Kubernetes. Er unterscheidet sich vom offiziellen Java-Client durch eine robuste domänenspezifische Sprache (DSL), eine Vielzahl von Erweiterungen und Support für benutzerdefinierte Ressourcen ohne die Notwendigkeit zusätzlicher Abhängigkeiten. 

Kubernetes Operators
Ein Kubernetes-Operator ist ein benutzerdefinierter, anwendungsspezifischer Controller, der die Kubernetes-API und die kubectl-Werkzeuge zur Erstellung, Konfiguration und Verwaltung von Anwendungen verwendet. Im Gegensatz zu den meisten Controllern verfügen Kubernetes-Operatoren über domänen- oder anwendungsspezifisches Wissen, um den gesamten Lifecycle einer containerisierten Anwendung zu automatisieren. Dies erleichtert bei der Entwicklung die Bereitstellung und Skalierung der auf diese Anwendungen angewiesenen Prozesse. 

Sonstige Drittanbieter-Libraries
Obwohl die Fabric8- und offiziellen Java-Clients die beliebtesten Java-Libraries für Kubernetes sind, sind sie keineswegs die einzigen verfügbaren Optionen. Weitere Java-Clients sind der Amdatu Labs Java-Client für das OSGI-Java-Framework und der YAKC Java-Client für Kubernetes.

Alternativ können Entwicklerinnen und Entwickler mit Kenntnissen in einer anderen Programmiersprache auch einen Nicht-Java-Client wählen, der ihren Anforderungen besser entspricht. Weitere offizielle sowie Drittanbieter-Libraries sind für zahlreiche Sprachen wie C, Dotnet, Haskell, Javascript, Perl, Python, Ruby und andere verfügbar.

Kubernetes ist eine leistungsstarke Open-Source-Plattform für die Orchestrierung von Containern. Ihr fehlt jedoch die Funktionalität zur Integration anderer Komponenten wie Netzwerk, Storage, Monitoring und CI/CD, die für eine schnellere Anwendungsentwicklung notwendig sind. Red Hat OpenShift baut auf Kubernetes auf und bietet eine Plattform zur Orchestrierung von Containern für Unternehmen, die diese Komponenten integriert und die Bereitstellung containerisierter Anwendungen beschleunigt.

Sie können zwar weiterhin den offiziellen Kubernetes Java-Client und andere Kubernetes-Bibliotheken verwenden, aber es gibt auch andere Clients, mit denen Sie die zusätzlichen Ressourcen und API-Endpunkte von Red Hat OpenShift nutzen können. Wie die Kubernetes-Clients sind auch die REST API-Client-Libraries für OpenShift für Java und zahlreiche andere Programmiersprachen verfügbar.

Red Hat bietet nicht nur Fachwissen über Container-Technologien, sondern unterstützt Sie mit einer Kombination aus Red Hat OpenShift, Red Hat Ansible Automation Platform und Kubernetes-Operatoren auch bei der Bewältigung der Komplexität der Anwendungsmodernisierung durch Automatisierung des Infrastruktur-Managements. Mit Red Hat Advanced Cluster Management for Kubernetes bietet Red Hat außerdem zusätzliche Tools zur Automatisierung der Anwendungsverwaltung in mehreren Clustern und unterschiedlichen Infrastrukturen.

Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Gehostete Control Planes für Red Hat OpenShift | Vorteile

Gehostete Control Planes ermöglichen das Ausführen von Control Planes auf kleineren Knoten und senken dadurch Kosten für Cluster. Konzepte für Hybrid Cloud

Was sind Sandbox-Container? | Sandboxing von Containern

Sandbox-Container erfüllen strenge Sicherheitsanforderungen. Sie isolieren Anwendungen, indem sie virtuelle Maschinen verwenden, die Container in Pods starten.

Red Hat OpenShift für Entwicklungsteams und Developer

Mit Red Hat® OpenShift® können Entwickler Anwendungen mit den Tools ihrer Wahl entwickeln und bereitstellen, ohne Sorge um die Infrastruktur.

Ressourcen zu Container

Verwandte Artikel