14.4. Abonnement aux événements Redfish BMC bare-metal pour un nœud de cluster


En tant qu'administrateur de cluster, vous pouvez vous abonner aux événements Redfish BMC générés sur un nœud de votre cluster en créant une ressource personnalisée (CR) BMCEventSubscription pour le nœud, en créant une CR HardwareEvent pour l'événement et une CR Secret pour la BMC.

14.4.1. S'abonner aux événements "bare-metal

Vous pouvez configurer le contrôleur de gestion de la carte de base (BMC) pour qu'il envoie des événements bare-metal aux applications abonnées s'exécutant dans un cluster OpenShift Container Platform. Parmi les exemples d'événements Redfish bare-metal, citons l'augmentation de la température d'un périphérique ou le retrait d'un périphérique. Vous abonnez les applications aux événements bare-metal à l'aide d'une API REST.

Important

Vous ne pouvez créer une ressource personnalisée (CR) BMCEventSubscription que pour le matériel physique qui prend en charge Redfish et dont l'interface fournisseur est définie sur redfish ou idrac-redfish.

Note

Utilisez le CR BMCEventSubscription pour vous abonner à des événements Redfish prédéfinis. La norme Redfish ne permet pas de créer des alertes et des seuils spécifiques. Par exemple, pour recevoir un événement d'alerte lorsque la température d'un boîtier dépasse 40° Celsius, vous devez configurer manuellement l'événement conformément aux recommandations du fournisseur.

Effectuez la procédure suivante pour vous abonner aux événements bare-metal pour le nœud à l'aide d'un CR BMCEventSubscription.

Conditions préalables

  • Installez le CLI OpenShift (oc).
  • Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
  • Obtenir le nom d'utilisateur et le mot de passe du BMC.
  • Déployez un nœud de métal nu avec un contrôleur de gestion de carte de base (BMC) compatible avec Redfish dans votre cluster, et activez les événements Redfish sur le BMC.

    Note

    L'activation des événements Redfish sur un matériel spécifique n'entre pas dans le cadre de ces informations. Pour plus d'informations sur l'activation des événements Redfish pour votre matériel spécifique, consultez la documentation du fabricant de BMC.

Procédure

  1. Confirmez que le matériel du nœud a activé Redfish EventService en exécutant la commande curl suivante :

    curl https://<bmc_ip_address>/redfish/v1/EventService --insecure -H 'Content-Type : application/json' -u "<bmc_username>:<password>"

    où :

    adresse IP bmc
    est l'adresse IP du BMC où les événements Redfish sont générés.

    Exemple de sortie

    {
       "@odata.context": "/redfish/v1/$metadata#EventService.EventService",
       "@odata.id": "/redfish/v1/EventService",
       "@odata.type": "#EventService.v1_0_2.EventService",
       "Actions": {
          "#EventService.SubmitTestEvent": {
             "EventType@Redfish.AllowableValues": ["StatusChange", "ResourceUpdated", "ResourceAdded", "ResourceRemoved", "Alert"],
             "target": "/redfish/v1/EventService/Actions/EventService.SubmitTestEvent"
          }
       },
       "DeliveryRetryAttempts": 3,
       "DeliveryRetryIntervalSeconds": 30,
       "Description": "Event Service represents the properties for the service",
       "EventTypesForSubscription": ["StatusChange", "ResourceUpdated", "ResourceAdded", "ResourceRemoved", "Alert"],
       "EventTypesForSubscription@odata.count": 5,
       "Id": "EventService",
       "Name": "Event Service",
       "ServiceEnabled": true,
       "Status": {
          "Health": "OK",
          "HealthRollup": "OK",
          "State": "Enabled"
       },
       "Subscriptions": {
          "@odata.id": "/redfish/v1/EventService/Subscriptions"
       }
    }

  2. Obtenez l'itinéraire du service Bare Metal Event Relay pour le cluster en exécutant la commande suivante :

    $ oc get route -n openshift-bare-metal-events

    Exemple de sortie

    NAME             HOST/PORT                                                                                           PATH   SERVICES                 PORT   TERMINATION   WILDCARD
    hw-event-proxy   hw-event-proxy-openshift-bare-metal-events.apps.compute-1.example.com          hw-event-proxy-service   9087   edge          None

  3. Créer une ressource BMCEventSubscription pour s'abonner aux événements Redfish :

    1. Enregistrez le YAML suivant dans le fichier bmc_sub.yaml:

      apiVersion: metal3.io/v1alpha1
      kind: BMCEventSubscription
      metadata:
        name: sub-01
        namespace: openshift-machine-api
      spec:
         hostName: <hostname> 1
         destination: <proxy_service_url> 2
         context: ''
      1
      Spécifie le nom ou l'UUID du nœud de travail où les événements Redfish sont générés.
      2
      Spécifie le service proxy d'événements pour le métal nu, par exemple, https://hw-event-proxy-openshift-bare-metal-events.apps.compute-1.example.com/webhook.
    2. Créer le CR BMCEventSubscription:

      $ oc create -f bmc_sub.yaml
  4. Facultatif : Pour supprimer l'abonnement aux événements BMC, exécutez la commande suivante :

    $ oc delete -f bmc_sub.yaml
  5. Facultatif : Pour créer manuellement un abonnement aux événements Redfish sans créer de CR BMCEventSubscription, exécutez la commande curl suivante, en spécifiant le nom d'utilisateur et le mot de passe de la BMC.

    $ curl -i -k -X POST -H "Content-Type: application/json"  -d '{"Destination": "https://<proxy_service_url>", "Protocol" : "Redfish", "EventTypes": ["Alert"], "Context": "root"}' -u <bmc_username>:<password> 'https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions' –v

    où :

    proxy_service_url
    est le service de proxy d'événements à l'état brut, par exemple, https://hw-event-proxy-openshift-bare-metal-events.apps.compute-1.example.com/webhook.
    adresse IP bmc
    est l'adresse IP du BMC où les événements Redfish sont générés.

    Exemple de sortie

    HTTP/1.1 201 Created
    Server: AMI MegaRAC Redfish Service
    Location: /redfish/v1/EventService/Subscriptions/1
    Allow: GET, POST
    Access-Control-Allow-Origin: *
    Access-Control-Expose-Headers: X-Auth-Token
    Access-Control-Allow-Headers: X-Auth-Token
    Access-Control-Allow-Credentials: true
    Cache-Control: no-cache, must-revalidate
    Link: <http://redfish.dmtf.org/schemas/v1/EventDestination.v1_6_0.json>; rel=describedby
    Link: <http://redfish.dmtf.org/schemas/v1/EventDestination.v1_6_0.json>
    Link: </redfish/v1/EventService/Subscriptions>; path=
    ETag: "1651135676"
    Content-Type: application/json; charset=UTF-8
    OData-Version: 4.0
    Content-Length: 614
    Date: Thu, 28 Apr 2022 08:47:57 GMT

14.4.2. Interroger les abonnements aux événements Redfish bare-metal avec curl

Certains fournisseurs de matériel limitent le nombre d'abonnements aux événements matériels Redfish. Vous pouvez demander le nombre d'abonnements aux événements Redfish en utilisant curl.

Conditions préalables

  • Obtenir le nom d'utilisateur et le mot de passe du BMC.
  • Déployez un nœud bare-metal avec un contrôleur de gestion de carte de base (BMC) compatible avec Redfish dans votre cluster, et activez les événements matériels Redfish sur le BMC.

Procédure

  1. Vérifiez les abonnements actuels de la BMC en exécutant la commande suivante : curl:

    $ curl --globoff -H "Content-Type : application/json" -k -X GET --user <bmc_username>:<password> https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions

    où :

    adresse IP bmc
    est l'adresse IP du BMC où les événements Redfish sont générés.

    Exemple de sortie

    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 435 100 435 0 0 399 0 0:00:01 0:00:01 --:--:-- 399
    {
      "@odata.context": "/redfish/v1/$metadata#EventDestinationCollection.EventDestinationCollection",
      "@odata.etag": ""
      1651137375 "",
      "@odata.id": "/redfish/v1/EventService/Subscriptions",
      "@odata.type": "#EventDestinationCollection.EventDestinationCollection",
      "Description": "Collection for Event Subscriptions",
      "Members": [
      {
        "@odata.id": "/redfish/v1/EventService/Subscriptions/1"
      }],
      "Members@odata.count": 1,
      "Name": "Event Subscriptions Collection"
    }

    Dans cet exemple, un seul abonnement est configuré : /redfish/v1/EventService/Subscriptions/1.

  2. Facultatif : Pour supprimer l'abonnement à /redfish/v1/EventService/Subscriptions/1 avec curl, exécutez la commande suivante en spécifiant le nom d'utilisateur et le mot de passe de la BMC :

    $ curl --globoff -L -w "%{http_code} %{url_effective}\n\n" -k -u <bmc_username>:<password >-H "Content-Type : application/json" -d '{}' -X DELETE https://<bmc_ip_address>/redfish/v1/EventService/Subscriptions/1

    où :

    adresse IP bmc
    est l'adresse IP du BMC où les événements Redfish sont générés.

14.4.3. Création de l'événement bare-metal et des CR secrètes

Pour commencer à utiliser les événements bare-metal, créez la ressource personnalisée (CR) HardwareEvent pour l'hôte où se trouve le matériel Redfish. Les événements matériels et les pannes sont signalés dans les journaux de hw-event-proxy.

Conditions préalables

  • Installez le CLI OpenShift (oc).
  • Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
  • Installer le relais d'événements Bare Metal.
  • Créez un CR BMCEventSubscription pour le matériel BMC Redfish.
Note

Les ressources multiples HardwareEvent ne sont pas autorisées.

Procédure

  1. Créer la ressource personnalisée (CR) HardwareEvent:

    1. Enregistrez le YAML suivant dans le fichier hw-event.yaml:

      apiVersion: "event.redhat-cne.org/v1alpha1"
      kind: "HardwareEvent"
      metadata:
        name: "hardware-event"
      spec:
        nodeSelector:
          node-role.kubernetes.io/hw-event: "" 1
        transportHost: "amqp://amq-router-service-name.amq-namespace.svc.cluster.local" 2
        logLevel: "debug" 3
        msgParserTimeout: "10" 4
      1
      Obligatoire. Utilisez le champ nodeSelector pour cibler les nœuds portant l'étiquette spécifiée, par exemple node-role.kubernetes.io/hw-event: "".
      2
      Nécessaire. Hôte AMQP qui délivre les événements au niveau de la couche transport à l'aide du protocole AMQP.
      3
      Facultatif. La valeur par défaut est debug. Définit le niveau de journalisation dans les journaux hw-event-proxy. Les niveaux de journalisation suivants sont disponibles : fatal, error, warning, info, debug, trace.
      4
      Facultatif. Définit la valeur du délai d'attente en millisecondes pour l'analyseur de messages. Si une demande d'analyse de message ne reçoit pas de réponse dans le délai imparti, le message d'événement matériel d'origine est transmis au cadre d'événements natif du nuage. La valeur par défaut est 10.
    2. Créer le CR HardwareEvent:

      $ oc create -f hardware-event.yaml
  2. Créez un nom d'utilisateur et un mot de passe BMC Secret CR qui permet au proxy d'événements matériels d'accéder au registre de messages Redfish pour l'hôte bare-metal.

    1. Enregistrez le YAML suivant dans le fichier hw-event-bmc-secret.yaml:

      apiVersion: v1
      kind: Secret
      metadata:
        name: redfish-basic-auth
      type: Opaque
      stringData: 1
        username: <bmc_username>
        password: <bmc_password>
        # BMC host DNS or IP address
        hostaddr: <bmc_host_ip_address>
      1
      Saisissez des valeurs en texte clair pour les différents postes sous stringData.
    2. Créer le CR Secret:

      $ oc create -f hw-event-bmc-secret.yaml
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.