Chapitre 5. Développer des opérateurs
5.1. À propos de l’opérateur SDK Copier lienLien copié sur presse-papiers!
Le Cadre d’opérateur est une boîte à outils open source pour gérer les applications natives Kubernetes, appelées Opérateurs, de manière efficace, automatisée et évolutive. Les opérateurs profitent de l’extensibilité de Kubernetes pour offrir les avantages d’automatisation des services cloud, tels que le provisionnement, la mise à l’échelle, la sauvegarde et la restauration, tout en étant en mesure d’exécuter n’importe où Kubernetes peut fonctionner.
Les opérateurs facilitent la gestion d’applications complexes et étatiques au-dessus de Kubernetes. Cependant, écrire un opérateur aujourd’hui peut être difficile en raison de défis tels que l’utilisation d’API de bas niveau, l’écriture de plaque de chaudière et un manque de modularité, ce qui conduit à la duplication.
Le SDK de l’opérateur, un composant du Cadre d’opérateur, fournit un outil d’interface de ligne de commande (CLI) que les développeurs d’opérateurs peuvent utiliser pour construire, tester et déployer un opérateur.
La version prise en charge par Red Hat de l’outil Operator SDK CLI, y compris les outils d’échafaudage et de test connexes pour les projets Opérateur, est dépréciée et devrait être supprimée dans une future version de Red Hat OpenShift Service sur AWS. Le Red Hat fournira des corrections de bogues et une prise en charge de cette fonctionnalité pendant le cycle de vie de la version actuelle, mais cette fonctionnalité ne recevra plus d’améliorations et sera supprimée du futur service Red Hat OpenShift sur les versions AWS.
La version prise en charge par Red Hat du SDK de l’opérateur n’est pas recommandée pour la création de nouveaux projets d’opérateur. Les auteurs d’opérateurs avec des projets d’opérateur existants peuvent utiliser la version de l’outil Operator SDK CLI publié avec Red Hat OpenShift Service sur AWS 4 pour maintenir leurs projets et créer des versions d’opérateur ciblant de nouvelles versions de Red Hat OpenShift Service sur AWS.
Les images de base suivantes pour les projets d’opérateur ne sont pas dépréciées. Les fonctionnalités d’exécution et les API de configuration de ces images de base sont toujours prises en charge pour les corrections de bogues et pour l’adressage des CVE.
- L’image de base pour les projets d’opérateurs basés sur Ansible
- L’image de base pour les projets d’opérateur basé sur Helm
Afin d’obtenir de l’information sur la version non prise en charge et gérée par la communauté du SDK de l’opérateur, voir Operator SDK (Operator Framework).
Comment utiliser le SDK de l’opérateur?
Le SDK de l’opérateur simplifie ce processus de création d’applications natives Kubernetes, ce qui peut nécessiter des connaissances opérationnelles approfondies et spécifiques à l’application. Le SDK de l’opérateur réduit non seulement cette barrière, mais il aide également à réduire la quantité de code de plaque de chaudière nécessaire pour de nombreuses capacités de gestion communes, telles que le comptage ou la surveillance.
Le SDK de l’opérateur est un framework qui utilise la bibliothèque d’exécution du contrôleur pour faciliter l’écriture des opérateurs en fournissant les fonctionnalités suivantes:
- API de haut niveau et abstractions pour écrire la logique opérationnelle plus intuitivement
- Des outils pour l’échafaudage et la génération de code pour démarrer rapidement un nouveau projet
- Intégration avec Operator Lifecycle Manager (OLM) pour rationaliser l’emballage, l’installation et l’exécution des opérateurs sur un cluster
- Extensions pour couvrir les cas communs d’utilisation de l’opérateur
- Les métriques configurées automatiquement dans n’importe quel opérateur Go-based généré pour une utilisation sur des clusters où l’opérateur Prometheus est déployé
Les auteurs d’opérateurs disposant d’un accès administrateur dédié au service OpenShift Red Hat sur AWS peuvent utiliser le SDK CLI de l’opérateur pour développer leurs propres opérateurs basés sur Go, Ansible, Java ou Helm. Kubebuilder est intégré dans le SDK de l’opérateur en tant que solution d’échafaudage pour les opérateurs Go, ce qui signifie que les projets Kubebuilder existants peuvent être utilisés comme avec le SDK de l’opérateur et continuer à fonctionner.
Le service OpenShift Red Hat sur AWS 4 prend en charge le SDK 1.38.0 de l’opérateur.
5.1.1. En quoi consistent les opérateurs? Copier lienLien copié sur presse-papiers!
Afin d’obtenir un aperçu des concepts et de la terminologie de base de l’opérateur, voir Comprendre les opérateurs.
5.1.2. Flux de travail de développement Copier lienLien copié sur presse-papiers!
Le SDK de l’opérateur fournit le flux de travail suivant pour développer un nouvel opérateur:
- Créez un projet d’opérateur à l’aide de l’interface de ligne de commande de l’opérateur SDK (CLI).
- Définissez de nouvelles API de ressource en ajoutant des définitions de ressources personnalisées (CRD).
- Indiquez les ressources à surveiller à l’aide de l’API d’opérateur SDK.
- Définissez la logique de rapprochement de l’opérateur dans un gestionnaire désigné et utilisez l’API d’opérateur SDK pour interagir avec les ressources.
- Faites appel à l’opérateur SDK CLI pour créer et générer les manifestes de déploiement de l’opérateur.
Figure 5.1. Flux de travail de l’opérateur SDK
À un niveau élevé, un opérateur qui utilise l’opérateur SDK traite les événements pour les ressources surveillées dans un gestionnaire défini par l’opérateur et prend des mesures pour concilier l’état de l’application.