Überblick
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.
Warum Kubernetes Java-Client?
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
Welche Alternativen bestehen zur Verwendung des Kubernetes Java-Clients?
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.
Wie kann Red Hat Sie unterstützen?
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.
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.