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.

27.4.1. Utilisation d'un équilibreur de charge pour acheminer le trafic vers le cluster

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
  • 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
  2. Utilisez la commande oc new-app pour créer votre service :

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

    $ oc get svc -n myproject

    Exemple de sortie

    NAME        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    nodejs-ex   ClusterIP   172.30.197.157   <none>        8080/TCP   70s

    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
  3. Exécutez la commande oc expose service pour exposer la route :

    $ oc expose service nodejs-ex

    Exemple de sortie

    route.route.openshift.io/nodejs-ex exposed

  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

      Exemple de sortie

      NAME        HOST/PORT                        PATH   SERVICES    PORT       TERMINATION   WILDCARD
      nodejs-ex   nodejs-ex-myproject.example.com         nodejs-ex   8080-tcp                 None

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

      $ curl --head nodejs-ex-myproject.example.com

      Exemple de sortie

      HTTP/1.1 200 OK
      ...

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

    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>

    Par exemple :

    $ oc create -f mysql-lb.yaml
  6. Exécutez la commande suivante pour afficher le nouveau service :

    $ oc get svc

    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

    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>

    Par exemple :

    $ curl 172.29.121.74:3306

    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

    Exemple de sortie

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

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.