27.4. Configuration du trafic entrant dans le cluster à l'aide d'un équilibreur de charge


OpenShift Container Platform fournit des méthodes pour communiquer depuis l'extérieur du cluster avec les services s'exécutant dans le cluster. Cette méthode utilise un équilibreur de charge.

Si vous n'avez pas besoin d'une adresse IP externe spécifique, vous pouvez configurer un service d'équilibreur de charge pour permettre l'accès externe à un cluster OpenShift Container Platform.

Un service d'équilibrage de charge attribue une IP unique. L'équilibreur de charge a une seule IP de routeur de périphérie, qui peut être une IP virtuelle (VIP), mais qui reste une machine unique pour l'équilibrage initial de la charge.

Note

Si un pool est configuré, il l'est au niveau de l'infrastructure, et non par un administrateur de cluster.

Note

Les procédures de cette section requièrent des conditions préalables effectuées par l'administrateur du cluster.

27.4.2. Conditions préalables

Avant de commencer les procédures suivantes, l'administrateur doit

  • Configurez le port externe de l'environnement réseau de la grappe pour que les demandes puissent atteindre la grappe.
  • Assurez-vous qu'il existe au moins un utilisateur ayant le rôle d'administrateur de cluster. Pour ajouter ce rôle à un utilisateur, exécutez la commande suivante :

    $ oc adm policy add-cluster-role-to-user cluster-admin username
    Copy to Clipboard Toggle word wrap
  • Disposer d'un cluster OpenShift Container Platform avec au moins un maître et au moins un nœud et un système extérieur au cluster qui a un accès réseau au cluster. Cette procédure suppose que le système externe se trouve sur le même sous-réseau que le cluster. La mise en réseau supplémentaire requise pour les systèmes externes sur un sous-réseau différent n'entre pas dans le cadre de cette rubrique.

27.4.3. Création d'un projet et d'un service

Si le projet et le service que vous souhaitez exposer n'existent pas, créez d'abord le projet, puis le service.

Si le projet et le service existent déjà, passez à la procédure d'exposition du service pour créer une route.

Conditions préalables

  • Installez le CLI oc et connectez-vous en tant qu'administrateur de cluster.

Procédure

  1. Créez un nouveau projet pour votre service en exécutant la commande oc new-project:

    $ oc new-project myproject
    Copy to Clipboard Toggle word wrap
  2. Utilisez la commande oc new-app pour créer votre service :

    $ oc new-app nodejs:12~https://github.com/sclorg/nodejs-ex.git
    Copy to Clipboard Toggle word wrap
  3. Pour vérifier que le service a été créé, exécutez la commande suivante :

    $ oc get svc -n myproject
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    nodejs-ex   ClusterIP   172.30.197.157   <none>        8080/TCP   70s
    Copy to Clipboard Toggle word wrap

    Par défaut, le nouveau service n'a pas d'adresse IP externe.

27.4.4. Exposer le service en créant une route

Vous pouvez exposer le service en tant que route en utilisant la commande oc expose.

Procédure

Pour exposer le service :

  1. Connectez-vous à OpenShift Container Platform.
  2. Connectez-vous au projet dans lequel se trouve le service que vous souhaitez exposer :

    $ oc project myproject
    Copy to Clipboard Toggle word wrap
  3. Exécutez la commande oc expose service pour exposer la route :

    $ oc expose service nodejs-ex
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    route.route.openshift.io/nodejs-ex exposed
    Copy to Clipboard Toggle word wrap

  4. Pour vérifier que le service est exposé, vous pouvez utiliser un outil, tel que cURL, pour vous assurer que le service est accessible depuis l'extérieur du cluster.

    1. Utilisez la commande oc get route pour trouver le nom d'hôte de la route :

      $ oc get route
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      NAME        HOST/PORT                        PATH   SERVICES    PORT       TERMINATION   WILDCARD
      nodejs-ex   nodejs-ex-myproject.example.com         nodejs-ex   8080-tcp                 None
      Copy to Clipboard Toggle word wrap

    2. Utilisez cURL pour vérifier que l'hôte répond à une requête GET :

      $ curl --head nodejs-ex-myproject.example.com
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      HTTP/1.1 200 OK
      ...
      Copy to Clipboard Toggle word wrap

27.4.5. Création d'un service d'équilibreur de charge

La procédure suivante permet de créer un service d'équilibreur de charge.

Conditions préalables

  • Assurez-vous que le projet et le service que vous souhaitez exposer existent.

Procédure

Pour créer un service d'équilibreur de charge :

  1. Connectez-vous à OpenShift Container Platform.
  2. Chargez le projet dans lequel se trouve le service que vous souhaitez exposer.

    $ oc project project1
    Copy to Clipboard Toggle word wrap
  3. Ouvrez un fichier texte sur le nœud du plan de contrôle et collez le texte suivant, en modifiant le fichier si nécessaire :

    Exemple de fichier de configuration d'un équilibreur de charge

    apiVersion: v1
    kind: Service
    metadata:
      name: egress-2 
    1
    
    spec:
      ports:
      - name: db
        port: 3306 
    2
    
      loadBalancerIP:
      loadBalancerSourceRanges: 
    3
    
      - 10.0.0.0/8
      - 192.168.0.0/16
      type: LoadBalancer 
    4
    
      selector:
        name: mysql 
    5
    Copy to Clipboard Toggle word wrap

    1
    Entrez un nom descriptif pour le service d'équilibreur de charge.
    2
    Saisissez le même port que celui sur lequel le service que vous souhaitez exposer écoute.
    3
    Entrez une liste d'adresses IP spécifiques pour restreindre le trafic via l'équilibreur de charge. Ce champ est ignoré si le fournisseur de cloud computing ne prend pas en charge cette fonctionnalité.
    4
    Saisissez Loadbalancer comme type.
    5
    Saisissez le nom du service.
    Note

    Pour limiter le trafic via l'équilibreur de charge à des adresses IP spécifiques, il est recommandé d'utiliser le champ Ingress Controller (contrôleur d'entrée) spec.endpointPublishingStrategy.loadBalancer.allowedSourceRanges. Ne définissez pas le champ loadBalancerSourceRanges.

  4. Save and exit the file.
  5. Exécutez la commande suivante pour créer le service :

    $ oc create -f <nom-de-fichier>
    Copy to Clipboard Toggle word wrap

    Par exemple :

    $ oc create -f mysql-lb.yaml
    Copy to Clipboard Toggle word wrap
  6. Exécutez la commande suivante pour afficher le nouveau service :

    $ oc get svc
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME       TYPE           CLUSTER-IP      EXTERNAL-IP                             PORT(S)          AGE
    egress-2   LoadBalancer   172.30.22.226   ad42f5d8b303045-487804948.example.com   3306:30357/TCP   15m
    Copy to Clipboard Toggle word wrap

    Le service dispose d'une adresse IP externe automatiquement attribuée si un fournisseur de cloud est activé.

  7. Sur le maître, utilisez un outil, tel que cURL, pour vous assurer que vous pouvez atteindre le service en utilisant l'adresse IP publique :

    $ curl <public-ip>:<port>
    Copy to Clipboard Toggle word wrap

    Par exemple :

    $ curl 172.29.121.74:3306
    Copy to Clipboard Toggle word wrap

    Les exemples de cette section utilisent un service MySQL, qui nécessite une application client. Si vous obtenez une chaîne de caractères avec le message Got packets out of order, vous êtes en train de vous connecter au service :

    Si vous disposez d'un client MySQL, connectez-vous à l'aide de la commande CLI standard :

    $ mysql -h 172.30.131.89 -u admin -p
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    
    MySQL [(none)]>
    Copy to Clipboard Toggle word wrap

Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat