24.18. Activation de la multidiffusion pour un projet


24.18.1. À propos de la multidiffusion

Avec la multidiffusion IP, les données sont diffusées simultanément à de nombreuses adresses IP.

Important

À l'heure actuelle, le multicast est utilisé de préférence pour la coordination ou la découverte de services à faible bande passante et non comme une solution à large bande passante.

Le trafic multicast entre les pods d'OpenShift Container Platform est désactivé par défaut. Si vous utilisez le plugin réseau OVN-Kubernetes, vous pouvez activer le multicast par projet.

24.18.2. Activation de la multidiffusion entre les pods

Vous pouvez activer le multicast entre les pods de votre projet.

Conditions préalables

  • Installez le CLI OpenShift (oc).
  • Vous devez vous connecter au cluster avec un utilisateur ayant le rôle cluster-admin.

Procédure

  • Exécutez la commande suivante pour activer la multidiffusion pour un projet. Remplacez <namespace> par l'espace de noms du projet pour lequel vous souhaitez activer la multidiffusion.

    $ oc annotate namespace <namespace> \
        k8s.ovn.org/multicast-enabled=true
    Astuce

    Vous pouvez également appliquer le YAML suivant pour ajouter l'annotation :

    apiVersion: v1
    kind: Namespace
    metadata:
      name: <namespace>
      annotations:
        k8s.ovn.org/multicast-enabled: "true"

Vérification

Pour vérifier que la multidiffusion est activée pour un projet, suivez la procédure suivante :

  1. Remplacez votre projet actuel par le projet pour lequel vous avez activé la multidiffusion. Remplacez <project> par le nom du projet.

    $ oc project <projet>
  2. Créez un pod qui servira de récepteur multicast :

    $ cat <<EOF| oc create -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: mlistener
      labels:
        app: multicast-verify
    spec:
      containers:
        - name: mlistener
          image: registry.access.redhat.com/ubi8
          command: ["/bin/sh", "-c"]
          args:
            ["dnf -y install socat hostname && sleep inf"]
          ports:
            - containerPort: 30102
              name: mlistener
              protocol: UDP
    EOF
  3. Créez un pod qui servira d'émetteur multicast :

    $ cat <<EOF| oc create -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: msender
      labels:
        app: multicast-verify
    spec:
      containers:
        - name: msender
          image: registry.access.redhat.com/ubi8
          command: ["/bin/sh", "-c"]
          args:
            ["dnf -y install socat && sleep inf"]
    EOF
  4. Dans une nouvelle fenêtre ou un nouvel onglet de terminal, démarrez l'auditeur de multidiffusion.

    1. Obtenir l'adresse IP du pod :

      $ POD_IP=$(oc get pods mlistener -o jsonpath='{.status.podIP}')
    2. Démarrez l'auditeur de multidiffusion en entrant la commande suivante :

      $ oc exec mlistener -i -t -- \
          socat UDP4-RECVFROM:30102,ip-add-membership=224.1.0.1:$POD_IP,fork EXEC:hostname
  5. Démarrer l'émetteur de multidiffusion.

    1. Obtenir la plage d'adresses IP du réseau de pods :

      $ CIDR=$(oc get Network.config.openshift.io cluster \
          -o jsonpath='{.status.clusterNetwork[0].cidr}')
    2. Pour envoyer un message multicast, entrez la commande suivante :

      $ oc exec msender -i -t -- \
          /bin/bash -c "echo | socat STDIO UDP4-DATAGRAM:224.1.0.1:30102,range=$CIDR,ip-multicast-ttl=64"

      Si la multidiffusion fonctionne, la commande précédente renvoie le résultat suivant :

      mlistener
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.