Rechercher

27.7. Configuration du trafic entrant de la grappe à l'aide d'un NodePort

download PDF

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 une adresse NodePort.

27.7.1. Utilisation d'un NodePort pour acheminer le trafic vers le cluster

Utilisez une ressource NodePort-type Service pour exposer un service sur un port spécifique sur tous les nœuds du cluster. Le port est spécifié dans le champ .spec.ports[*].nodePort de la ressource Service.

Important

L'utilisation d'un port de nœud nécessite des ressources portuaires supplémentaires.

Un NodePort expose le service sur un port statique de l'adresse IP du nœud. Les NodePortse situent par défaut entre 30000 et 32767, ce qui signifie qu'un NodePort a peu de chances de correspondre au port prévu d'un service. Par exemple, le port 8080 peut être exposé en tant que port 31020 sur le nœud.

L'administrateur doit s'assurer que les adresses IP externes sont acheminées vers les nœuds.

NodePortet les IP externes sont indépendantes et peuvent être utilisées simultanément.

Note

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

27.7.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 <user_name>
  • 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.7.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.7.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. Pour exposer un port de nœud pour l'application, modifiez la définition de ressource personnalisée (CRD) d'un service en entrant la commande suivante :

    $ oc edit svc <service_name>

    Exemple de sortie

    spec:
      ports:
      - name: 8443-tcp
        nodePort: 30327 1
        port: 8443
        protocol: TCP
        targetPort: 8443
      sessionAffinity: None
      type: NodePort 2

    1
    Facultatif : Spécifiez la plage de ports du nœud pour l'application. Par défaut, OpenShift Container Platform sélectionne un port disponible dans la plage 30000-32767.
    2
    Définir le type de service.
  4. Facultatif : Pour confirmer que le service est disponible avec un port de nœud exposé, entrez 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.217.127   <none>        3306/TCP         9m44s
    nodejs-ex-ingress   NodePort    172.30.107.72    <none>        3306:31345/TCP   39s

  5. En option : Pour supprimer le service créé automatiquement par la commande oc new-app, entrez la commande suivante :

    $ oc delete svc nodejs-ex

Vérification

  • Pour vérifier que le port du nœud de service est mis à jour avec un port de la plage 30000-32767, entrez la commande suivante :

    $ oc get svc

    Dans l'exemple suivant, le port mis à jour est 30327:

    Exemple de sortie

    NAME    TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    httpd   NodePort   172.xx.xx.xx    <none>        8443:30327/TCP   109s

27.7.5. Ressources supplémentaires

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.