14.2. Fonctionnement des événements "bare-metal
Le relais d'événements Bare Metal permet aux applications fonctionnant sur des clusters bare-metal de répondre rapidement aux changements et aux défaillances du matériel Redfish, tels que les dépassements de seuils de température, les pannes de ventilateur, les pertes de disque, les coupures de courant et les pannes de mémoire. Ces événements matériels sont transmis via un canal de transport fiable à faible latence basé sur le protocole AMQP (Advanced Message Queuing Protocol). Le temps de latence du service de messagerie est compris entre 10 et 20 millisecondes.
Le Bare Metal Event Relay fournit un service de publication et d'abonnement pour les événements matériels, où plusieurs applications peuvent utiliser les API REST pour s'abonner et consommer les événements. Le Bare Metal Event Relay prend en charge le matériel conforme à Redfish OpenAPI v1.8 ou supérieur.
14.2.1. Flux de données du relais d'événements Bare Metal
La figure suivante illustre un exemple de flux de données d'événements bare-metal :
Figure 14.1. Flux de données du relais d'événements Bare Metal
14.2.1.1. Nacelle gérée par l'opérateur
L'opérateur utilise des ressources personnalisées pour gérer le pod contenant le Bare Metal Event Relay et ses composants à l'aide du CR HardwareEvent
.
14.2.1.2. Relais d'événements Bare Metal
Au démarrage, le Bare Metal Event Relay interroge l'API Redfish et télécharge tous les registres de messages, y compris les registres personnalisés. Le Bare Metal Event Relay commence alors à recevoir les événements souscrits du matériel Redfish.
Le relais d'événements Bare Metal permet aux applications fonctionnant sur des clusters bare-metal de répondre rapidement aux changements et aux défaillances du matériel Redfish, tels que les dépassements de seuils de température, les pannes de ventilateur, les pertes de disque, les coupures de courant et les pannes de mémoire. Les événements sont signalés à l'aide de HardwareEvent
CR.
14.2.1.3. Événement "cloud native
Cloud native events (CNE) est une spécification d'API REST pour définir le format des données d'événements.
14.2.1.4. CNCF CloudEvents
CloudEvents est une spécification neutre développée par la Cloud Native Computing Foundation (CNCF) pour définir le format des données d'événements.
14.2.1.5. Routeur de distribution AMQP
Le routeur de distribution est responsable du service de livraison des messages entre l'éditeur et l'abonné. AMQP 1.0 qpid est une norme ouverte qui prend en charge une messagerie fiable, performante et entièrement symétrique sur l'internet.
14.2.1.6. Sidecar de proxy d'événement cloud
L'image du conteneur sidecar du proxy d'événements en nuage est basée sur la spécification de l'API ORAN et fournit un cadre d'événements de publication et d'abonnement pour les événements matériels.
14.2.2. Service d'analyse de messages Redfish
Outre le traitement des événements Redfish, le Bare Metal Event Relay assure l'analyse des messages pour les événements sans propriété Message
. Le proxy télécharge tous les registres de messages Redfish, y compris les registres spécifiques aux fournisseurs, à partir du matériel lorsqu'il démarre. Si un événement ne contient pas de propriété Message
, le proxy utilise les registres de messages Redfish pour construire les propriétés Message
et Resolution
et les ajouter à l'événement avant de le transmettre au cadre d'événements en nuage. Ce service permet aux événements Redfish d'avoir une taille de message plus petite et une latence de transmission plus faible.
14.2.3. Installation de Bare Metal Event Relay à l'aide de l'interface de programmation (CLI)
En tant qu'administrateur de cluster, vous pouvez installer Bare Metal Event Relay Operator à l'aide de la CLI.
Conditions préalables
- Cluster installé sur du matériel bare-metal avec des nœuds dotés d'un contrôleur de gestion de carte de base (BMC) compatible avec RedFish.
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
.
Procédure
Créer un espace de noms pour le relais d'événements Bare Metal.
Enregistrez le YAML suivant dans le fichier
bare-metal-events-namespace.yaml
:apiVersion: v1 kind: Namespace metadata: name: openshift-bare-metal-events labels: name: openshift-bare-metal-events openshift.io/cluster-monitoring: "true"
Créer le CR
Namespace
:$ oc create -f bare-metal-events-namespace.yaml
Créez un groupe d'opérateurs pour l'opérateur de relais d'événements Bare Metal.
Enregistrez le YAML suivant dans le fichier
bare-metal-events-operatorgroup.yaml
:apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: bare-metal-event-relay-group namespace: openshift-bare-metal-events spec: targetNamespaces: - openshift-bare-metal-events
Créer le CR
OperatorGroup
:$ oc create -f bare-metal-events-operatorgroup.yaml
S'abonner au relais d'événements Bare Metal.
Enregistrez le YAML suivant dans le fichier
bare-metal-events-sub.yaml
:apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: bare-metal-event-relay-subscription namespace: openshift-bare-metal-events spec: channel: "stable" name: bare-metal-event-relay source: redhat-operators sourceNamespace: openshift-marketplace
Créer le CR
Subscription
:$ oc create -f bare-metal-events-sub.yaml
Vérification
Pour vérifier que Bare Metal Event Relay Operator est installé, exécutez la commande suivante :
$ oc get csv -n openshift-bare-metal-events -o custom-columns=Name:.metadata.name,Phase:.status.phase
Exemple de sortie
Name Phase bare-metal-event-relay.4.12.0-xxxxxxxxxxxx Succeeded
14.2.4. Installation de Bare Metal Event Relay à l'aide de la console web
En tant qu'administrateur de cluster, vous pouvez installer Bare Metal Event Relay Operator à l'aide de la console web.
Conditions préalables
- Cluster installé sur du matériel bare-metal avec des nœuds dotés d'un contrôleur de gestion de carte de base (BMC) compatible avec RedFish.
-
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
.
Procédure
Installez le Bare Metal Event Relay à l'aide de la console web d'OpenShift Container Platform :
-
Dans la console Web OpenShift Container Platform, cliquez sur Operators
OperatorHub. - Choisissez Bare Metal Event Relay dans la liste des opérateurs disponibles, puis cliquez sur Install.
- Sur la page Install Operator, sélectionnez ou créez un Namespace, sélectionnez openshift-bare-metal-events, puis cliquez sur Install.
-
Dans la console Web OpenShift Container Platform, cliquez sur Operators
Vérification
Facultatif : vous pouvez vérifier que l'installation de l'opérateur s'est déroulée correctement en effectuant le contrôle suivant :
-
Passez à la page Operators
Installed Operators. Assurez-vous que Bare Metal Event Relay est listé dans le projet avec un Status de InstallSucceeded.
NotePendant l'installation, un opérateur peut afficher un état Failed. Si l'installation réussit par la suite avec un message InstallSucceeded, vous pouvez ignorer le message Failed.
Si l'opérateur n'apparaît pas tel qu'il a été installé, il convient de poursuivre le dépannage :
-
Allez à la page Operators
Installed Operators et inspectez les onglets Operator Subscriptions et Install Plans pour voir s'il y a des défaillances ou des erreurs sous Status. -
Allez sur la page Workloads
Pods et vérifiez les journaux pour les pods dans l'espace de noms du projet.