Chapitre 8. Plugin réseau OpenShift SDN
8.1. Activer la multidiffusion pour un projet Copier lienLien copié sur presse-papiers!
8.1.1. À propos du multidiffusion Copier lienLien copié sur presse-papiers!
Avec le multidiffusion IP, les données sont diffusées simultanément à de nombreuses adresses IP.
- À l’heure actuelle, le multicast est le mieux utilisé pour la coordination à faible bande passante ou la découverte de services et non pour une solution à bande passante élevée.
- Les stratégies réseau affectent par défaut toutes les connexions dans un espace de noms. Cependant, la multidiffusion n’est pas affectée par les politiques de réseau. Lorsque la multidiffusion est activée dans le même espace de noms que vos stratégies réseau, elle est toujours autorisée, même s’il existe une stratégie réseau refusée. Les administrateurs de clusters devraient tenir compte des implications de l’exemption de la multidiffusion des politiques réseau avant de l’autoriser.
Le trafic multidiffusion entre les pods dédiés OpenShift est désactivé par défaut. En utilisant le plugin réseau OVN-Kubernetes, vous pouvez activer la multidiffusion par projet.
8.1.2. Activer la multidiffusion entre les pods Copier lienLien copié sur presse-papiers!
Il est possible d’activer le multicast entre les pods pour votre projet.
Conditions préalables
- Installez le OpenShift CLI (oc).
- Connectez-vous au cluster avec un utilisateur qui a le rôle cluster-admin ou dédié-admin.
Procédure
Exécutez la commande suivante pour activer le multicast pour un projet. <namespace> par l’espace de noms pour le projet pour lequel vous souhaitez activer le multicast.
oc annotate namespace <namespace> \ k8s.ovn.org/multicast-enabled=true
$ oc annotate namespace <namespace> \ k8s.ovn.org/multicast-enabled=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AstuceAlternativement, vous pouvez appliquer le YAML suivant pour ajouter l’annotation:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
Afin de vérifier que la multidiffusion est activée pour un projet, complétez la procédure suivante:
Changez votre projet actuel au projet pour lequel vous avez activé le multicast. <project> par le nom du projet.
oc project <project>
$ oc project <project>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un pod pour agir en tant que récepteur multicast:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un pod pour agir en tant qu’expéditeur multicast:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans une nouvelle fenêtre ou onglet terminal, démarrez l’auditeur multicast.
Accédez à l’adresse IP du Pod:
POD_IP=$(oc get pods mlistener -o jsonpath='{.status.podIP}')
$ POD_IP=$(oc get pods mlistener -o jsonpath='{.status.podIP}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez l’auditeur multicast 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
$ oc exec mlistener -i -t -- \ socat UDP4-RECVFROM:30102,ip-add-membership=224.1.0.1:$POD_IP,fork EXEC:hostname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Démarrez l’émetteur multidiffusion.
Accédez à la plage d’adresse IP du réseau pod:
CIDR=$(oc get Network.config.openshift.io cluster \ -o jsonpath='{.status.clusterNetwork[0].cidr}')
$ CIDR=$(oc get Network.config.openshift.io cluster \ -o jsonpath='{.status.clusterNetwork[0].cidr}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afin d’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"
$ oc exec msender -i -t -- \ /bin/bash -c "echo | socat STDIO UDP4-DATAGRAM:224.1.0.1:30102,range=$CIDR,ip-multicast-ttl=64"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque le multicast fonctionne, la commande précédente renvoie la sortie suivante:
mlistener
mlistener
Copy to Clipboard Copied! Toggle word wrap Toggle overflow