Rechercher

6.2. Comprendre l'opérateur de liaison de service

download PDF

Les développeurs d'applications ont besoin d'accéder aux services d'appui pour créer et connecter des charges de travail. La connexion des charges de travail aux services d'appui constitue toujours un défi, car chaque fournisseur de services propose une manière différente d'accéder à ses secrets et de les consommer dans une charge de travail. En outre, la configuration et la maintenance manuelles de cette liaison entre les charges de travail et les services d'appui rendent le processus fastidieux, inefficace et sujet aux erreurs.

L'opérateur de liaison de services permet aux développeurs d'applications de lier facilement les charges de travail aux services de soutien gérés par l'opérateur, sans procédures manuelles pour configurer la connexion de liaison.

6.2.1. Terminologie du Service Binding

Cette section résume les termes de base utilisés dans la liaison de service.

Liaison de service

La représentation de l'action de fournir des informations sur un service à une charge de travail. Les exemples incluent l'établissement d'un échange d'informations d'identification entre une application Java et une base de données dont elle a besoin.

Service de soutien

Tout service ou logiciel que l'application consomme sur le réseau dans le cadre de son fonctionnement normal. Il peut s'agir par exemple d'une base de données, d'un courtier en messages, d'une application avec des points d'extrémité REST, d'un flux d'événements, d'un moniteur de performance d'application (APM) ou d'un module de sécurité matériel (HSM).

Charge de travail (application)

Tout processus s'exécutant dans un conteneur. Les exemples incluent une application Spring Boot, une application NodeJS Express, ou une application Ruby on Rails.

Données contraignantes

Informations sur un service que vous utilisez pour configurer le comportement d'autres ressources au sein du cluster. Il peut s'agir par exemple d'informations d'identification, de détails de connexion, de montages de volumes ou de secrets.

Connexion contraignante

Toute connexion qui établit une interaction entre les composants connectés, tels qu'un service de soutien liant et une application nécessitant ce service de soutien.

6.2.2. À propos de l'opérateur de reliure de service

L'opérateur de liaison de services se compose d'un contrôleur et d'une définition de ressource personnalisée (CRD) pour la liaison de services. Il gère le plan de données pour les charges de travail et les services d'appui. Le contrôleur de liaison de services lit les données mises à disposition par le plan de contrôle des services d'appui. Il projette ensuite ces données vers les charges de travail conformément aux règles spécifiées dans la ressource ServiceBinding.

Par conséquent, l'opérateur de liaison de services permet aux charges de travail d'utiliser des services d'appui ou des services externes en collectant et en partageant automatiquement les données de liaison avec les charges de travail. Le processus consiste à rendre le service d'appui liable et à lier la charge de travail et le service ensemble.

6.2.2.1. Rendre liant un service d'appui géré par un opérateur

Pour rendre un service liant, en tant que fournisseur d'un opérateur, vous devez exposer les données de liaison requises par les charges de travail pour se lier aux services fournis par l'opérateur. Vous pouvez fournir les données de liaison sous forme d'annotations ou de descripteurs dans le CRD de l'opérateur qui gère le service d'appui.

6.2.2.2. Lier une charge de travail à un service d'appui

En utilisant l'opérateur de liaison de service, en tant que développeur d'application, vous devez déclarer l'intention d'établir une connexion de liaison. Vous devez créer un CR ServiceBinding qui fait référence au service d'appui. Cette action déclenche l'opérateur de liaison de service pour projeter les données de liaison exposées dans la charge de travail. Le Service Binding Operator reçoit l'intention déclarée et lie la charge de travail au service d'appui.

Le CRD de l'opérateur de liaison de services prend en charge les API suivantes :

  • Service Binding avec le groupe API binding.operators.coreos.com.
  • Service Binding (Spec API) avec le groupe API servicebinding.io.

Avec Service Binding Operator, vous pouvez :

  • Liez vos charges de travail à des services de sauvegarde gérés par l'opérateur.
  • Automatiser la configuration des données de liaison.
  • Fournir aux opérateurs de services une expérience administrative simple pour fournir et gérer l'accès aux services.
  • Enrichissez le cycle de développement avec une méthode de liaison de service cohérente et déclarative qui élimine les divergences dans les environnements en grappe.

6.2.3. Caractéristiques principales

  • Exposition des données contraignantes des services

    • Basé sur les annotations présentes dans le CRD, les ressources personnalisées (CR) ou les ressources.
  • Projection de la charge de travail

    • Projection des données de reliure sous forme de fichiers, avec montage des volumes.
    • Projection des données contraignantes sous forme de variables d'environnement.
  • Options de liaison de service

    • Lier les services de soutien dans un espace de noms différent de l'espace de noms de la charge de travail.
    • Projeter les données de liaison dans les charges de travail spécifiques des conteneurs.
    • Détection automatique des données de liaison à partir des ressources appartenant au service d'appui CR.
    • Composer des données de liaison personnalisées à partir des données de liaison exposées.
    • Prise en charge des ressources de charge de travail non conformes àPodSpec.
  • Sécurité

    • Prise en charge du contrôle d'accès basé sur les rôles (RBAC).

6.2.4. Différences entre les API

Le CRD de l'opérateur de liaison de services prend en charge les API suivantes :

  • Service Binding avec le groupe API binding.operators.coreos.com.
  • Service Binding (Spec API) avec le groupe API servicebinding.io.

Ces deux groupes d'API présentent des caractéristiques similaires, mais ne sont pas tout à fait identiques. Voici la liste complète des différences entre ces groupes d'API :

FonctionnalitéSoutenu par le groupe API binding.operators.coreos.com Soutenu par le groupe API servicebinding.io Notes

Liaison avec les services fournis

Oui

Oui

Non applicable (N/A)

Projection directe du secret

Oui

Oui

Non applicable (N/A)

Relier comme des fichiers

Oui

Oui

  • Comportement par défaut pour les liaisons de service du groupe d'API servicebinding.io
  • Fonctionnalité d'acceptation pour les liaisons de service du groupe d'API binding.operators.coreos.com

Lier en tant que variables d'environnement

Oui

Oui

  • Comportement par défaut pour les liaisons de service du groupe d'API binding.operators.coreos.com.
  • Fonctionnalité d'acceptation pour les liaisons de service du groupe d'API servicebinding.io: Les variables d'environnement sont créées en même temps que les fichiers.

Sélection de la charge de travail à l'aide d'un sélecteur d'étiquettes

Oui

Oui

Non applicable (N/A)

Détection des ressources contraignantes (.spec.detectBindingResources)

Oui

Non

Le groupe API servicebinding.io n'a pas de fonction équivalente.

Stratégies de dénomination

Oui

Non

Il n'existe actuellement aucun mécanisme au sein du groupe API servicebinding.io pour interpréter les modèles utilisés par les stratégies de dénomination.

Chemin d'accès au conteneur

Oui

Partiel

Étant donné qu'une liaison de service du groupe d'API binding.operators.coreos.com peut spécifier un comportement de mappage dans la ressource ServiceBinding, le groupe d'API servicebinding.io ne peut pas entièrement prendre en charge un comportement équivalent sans plus d'informations sur la charge de travail.

Filtrage des noms de conteneurs

Non

Oui

Le groupe API binding.operators.coreos.com n'a pas de fonction équivalente.

Chemin secret

Oui

Non

Le groupe API servicebinding.io n'a pas de fonction équivalente.

Autres sources de liaison (par exemple, données de liaison provenant d'annotations)

Oui

Autorisé par l'opérateur de liaison de service

La spécification exige la prise en charge de l'obtention de données contraignantes à partir de services et de secrets fournis. Cependant, une lecture stricte de la spécification suggère que la prise en charge d'autres sources de données de liaison est autorisée. De ce fait, Service Binding Operator peut extraire les données de liaison de diverses sources (par exemple, extraire les données de liaison des annotations). Service Binding Operator prend en charge ces sources dans les deux groupes d'API.

6.2.5. Ressources complémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.