Présentation
Le client Java™ Kubernetes est une bibliothèque client qui permet d'utiliser le langage de programmation Java pour créer une interface avec Kubernetes. Le client Java repose sur l'API REST de Kubernetes et fournit un accès programmé à Kubernetes. Il permet de créer, modifier et supprimer différentes ressources d'un cluster Kubernetes, de mettre à l'échelle des déploiements, d'exécuter des commandes et de surveiller des événements.
Kubernetes est une plateforme Open Source d'orchestration des conteneurs qui automatise le déploiement, la gestion et la mise à l'échelle des applications conteneurisées. Les bibliothèques client Kubernetes peuvent gérer diverses tâches, telles que l'authentification, et elles facilitent le développement d'applications basées sur l'API Kubernetes.
Le framework le plus ancien et le plus couramment employé est le client officiel Kubernetes Go (« client-go »). Il est utilisé par le système Kubernetes, ainsi que par d'autres distributions et plateformes comme Red Hat® OpenShift. D'autres bibliothèques officielles et communautaires sont aussi fréquemment utilisées pour une multitude de langages de programmation. S'il existe plusieurs clients Java communautaires pour Kubernetes, le client Java Kubernetes est la seule bibliothèque client officielle gérée par le groupe d'intérêt spécial Kubernetes API Machinery.
Avantages du client Java Kubernetes
Ces dernières années, les équipes de développement ont abandonné les architectures monolithiques au profit d'applications cloud-native polyvalentes. De nombreuses entreprises cherchant à moderniser leurs applications Java existantes décident d'adopter un modèle de déploiement cloud. Le développement Java cloud-native, une composante essentielle de la modernisation des applications Java, implique souvent d'utiliser une plateforme d'orchestration des conteneurs telle que Kubernetes pour gérer, déployer et mettre à l'échelle efficacement les applications.
Les applications conteneurisées n'ont pas toujours besoin de communiquer avec l'API Kubernetes. Cependant, il existe de nombreux cas d'utilisation où les appels d'API sont nécessaires pour effectuer une tâche donnée. Les entreprises qui souhaitent gérer elles-mêmes leurs clusters Kubernetes plutôt que d'utiliser une plateforme comme Red Hat OpenShift et un composant tel que Red Hat Advanced Cluster Management for Kubernetes, peuvent recourir au client Java officiel pour communiquer avec l'API Kubernetes dans les cas suivants :
- Gestion des applications
- Mise à l'échelle et mise à l'échelle automatique
- Surveillance, alerte et journalisation
- Mise en place d'un déploiement continu
- Ajout d'opérateurs personnalisés à l'API Kubernetes
- Administration des clusters
- Gestion du cloud hybride
Le système Kubernetes est écrit en Golang, tout comme ses outils et bibliothèques. Si l'équipe de développement ne maîtrise pas ce langage, il faudra prévoir des formations et des ressources supplémentaires avant de passer au développement cloud-native sur Kubernetes. Pour les entreprises qui disposent déjà d'applications Java ou de talents qui maîtrisent Java, le client Java Kubernetes rend inutile l'apprentissage d'un nouveau langage de programmation et simplifie l'adoption du développement cloud-native.
Ressources Red Hat
Autres solutions
Bien que le client Java Kubernetes officiel semble être la meilleure option pour les équipes de développement Java, il existe d'autres solutions qui permettent d'exploiter et de gérer les clusters Kubernetes.
API REST de Kubernetes et kubectl
L'API REST de Kubernetes est la partie front-end du plan de contrôle de Kubernetes. Elle sert à gérer, créer et configurer des clusters Kubernetes. Il est possible d'interagir avec l'API à l'aide de kubectl, l'outil en ligne de commande de Kubernetes, pour lancer des appels d'API et gérer les ressources Kubernetes. De plus, l'API REST est directement accessible via un client HTTP tel que curl ou Wget.
Client Java Fabric8
Le client Java Fabric8 est une bibliothèque client communautaire. C'est la plus ancienne bibliothèque Java pour Kubernetes. Il se différencie du client Java par son langage spécifique du domaine, différentes extensions et une prise en charge des ressources personnalisées sans ajout de dépendances supplémentaires.
Opérateurs Kubernetes
Un opérateur Kubernetes est un contrôleur propre à une application qui utilise l'API Kubernetes et les outils kubectl pour créer, configurer et gérer des applications. Contrairement à la plupart des contrôleurs, les opérateurs Kubernetes incluent des connaissances spécifiques d'une application ou d'un domaine qui permettent d'automatiser le cycle de vie complet d'une application conteneurisée, ce qui facilite le déploiement et la mise à l'échelle des processus sous-jacents.
Autres bibliothèques tierces
Les clients officiels et Fabric8 sont les bibliothèques Java les plus utilisées pour Kubernetes, mais ce ne sont pas les seules options. Il existe aussi Amdatu Labs pour le framework Java OSGI et YAKC pour Kubernetes, par exemple.
D'ailleurs, les développeurs qui maîtrisent d'autres langages de programmation peuvent parfaitement choisir un client non Java qui répondra mieux à leurs besoins. D'autres bibliothèques officielles et tierces sont disponibles pour de nombreux langages, notamment C, dotnet, Haskell, JavaScript, Perl, Python et Ruby.
Nos solutions
Kubernetes est une plateforme Open Source d'orchestration des conteneurs très puissante, qui ne permet cependant pas d'intégrer les composants nécessaires au développement rapide des applications (mise en réseau, stockage, surveillance et CI/CD). Notre solution Red Hat OpenShift basée sur Kubernetes offre une plateforme d'orchestration des conteneurs pour les entreprises qui inclut tous ces composants et qui accélère la distribution des applications conteneurisées.
Même s'il reste possible d'utiliser le client Java Kubernetes officiel et d'autres bibliothèques Kubernetes, il existe d'autres clients qui permettent d'exploiter les ressources complémentaires et les points de terminaison d'API ajoutés par Red Hat OpenShift. À l'instar des clients Kubernetes, les bibliothèques client des API REST pour OpenShift sont disponibles pour Java et de nombreux langages de programmation.
En plus d'apporter notre expertise en matière de technologies de conteneurs, nous aidons les entreprises à surmonter les difficultés liées à la modernisation des applications en automatisant la gestion de leur infrastructure grâce à l'association de Red Hat OpenShift, de Red Hat Ansible Automation Platform et des opérateurs Kubernetes. Avec le produit Red Hat Advanced Cluster Management for Kubernetes, nous proposons également des outils pour automatiser la gestion des applications sur plusieurs clusters et dans différentes infrastructures, afin d'accélérer la distribution des applications et de moderniser les charges de travail des entreprises.
Le blog officiel de Red Hat
Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.