25.12. Activation de la multidiffusion pour un projet


25.12.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 de OpenShift Container Platform est désactivé par défaut. Si vous utilisez le plugin réseau OpenShift SDN, vous pouvez activer le multicast par projet.

Lors de l'utilisation du plugin réseau OpenShift SDN en mode d'isolation networkpolicy:

  • Les paquets de multidiffusion envoyés par un pod seront distribués à tous les autres pods du projet, indépendamment des objets NetworkPolicy. Les modules peuvent être en mesure de communiquer par multidiffusion même s'ils ne peuvent pas communiquer par monodiffusion.
  • Les paquets de multidiffusion envoyés par un pod dans un projet ne seront jamais transmis aux pods d'un autre projet, même s'il existe des objets NetworkPolicy qui permettent la communication entre les projets.

Lors de l'utilisation du plugin réseau OpenShift SDN en mode d'isolation multitenant:

  • Les paquets de multidiffusion envoyés par un pod seront distribués à tous les autres pods du projet.
  • Les paquets multicast envoyés par un pod dans un projet seront délivrés aux pods dans d'autres projets seulement si chaque projet est joint et que le multicast est activé dans chaque projet joint.

25.12.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 netnamespace <namespace> \
        netnamespace.network.openshift.io/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.