BLOG | NGINX

Premiers pas avec l'opérateur d'entrée NGINX sur Red Hat OpenShift

Miniature d'Amir Rawdat
Amir Rawdat
Publié le 30 avril 2020

Dans le cadre de notre partenariat avec Red Hat , nous continuons à nous concentrer sur l’accompagnement des utilisateurs d’entreprise qui ont besoin d’une solution performante, évolutive et à long terme pour la fourniture de services compatibles DevOps dans OpenShift. L' opérateur d'entrée NGINX pour OpenShift est un mécanisme pris en charge et certifié pour le déploiement de NGINX Plus Ingress Controller pour Kubernetes aux côtés du routeur par défaut dans un environnement OpenShift, avec une installation pointer-cliquer et des mises à niveau automatiques. Vous pouvez exploiter Operator Lifecycle Manager (OLM) pour effectuer l’installation, la mise à niveau et la configuration de l’opérateur NGINX Ingress.

Vous vous demandez pourquoi vous voudriez utiliser le contrôleur d’entrée NGINX Plus en plus du routeur par défaut ? Découvrez comment notre partenariat permet une distribution d'applications sécurisée, évolutive et prise en charge dans notre blog La valeur de Red Hat + NGINX .

Ce guide étape par étape fournit tout ce dont vous avez besoin pour démarrer avec l'opérateur NGINX Ingress. Avant de commencer, assurez-vous que vous disposez d’un accès administrateur à un environnement de cluster OpenShift exécutant OpenShift 4.3 ou une version ultérieure.

Installation de l'opérateur

Voici une vidéo montrant comment installer l’opérateur NGINX Ingress, suivie d’un résumé écrit avec des captures d’écran.

Nous installons l'opérateur d'entrée NGINX à partir de la console OpenShift.

  1. Connectez-vous à la console OpenShift en tant qu’administrateur.
  2. Dans la colonne de navigation de gauche, cliquez sur Opérateurs puis sur OperatorHub . Tapez nginx dans la zone de recherche et cliquez sur la zone Opérateur d’entrée Nginx qui apparaît.

  3. Après avoir vérifié les informations sur le produit, cliquez sur le bouton Installer .

  4. Sur la page Créer un abonnement d'opérateur qui s'ouvre, spécifiez l'espace de noms du cluster dans lequel installer l'opérateur (dans cet exemple, il s'agit de nginx-ingress ). Cliquez également sur le bouton radio Automatique sous Stratégie d’approbation pour activer les mises à jour automatiques de l’instance d’opérateur en cours d’exécution sans approbation manuelle de l’administrateur. Cliquez sur le bouton S'abonner .

  5. Une fois l'installation terminée, exécutez cette commande dans un terminal pour vérifier que l'opérateur est en cours d'exécution :

    # oc get pods –n nginx-ingressNAME                                     READY   STATUS    RESTARTS   AGE
    nginx-ingress-operator-dd546d869-xxxxx   1/1     Running   0          7m29s
  6. Cliquez sur Opérateurs installés dans la colonne de navigation à gauche. Sur la page qui s'ouvre, cliquez sur le lien NginxIngressController dans la colonne APIs fournies. NginxIngressController est une ressource personnalisée que l’Opérateur utilise pour déployer le contrôleur d’entrée NGINX Plus sur votre cluster OpenShift.

  7. Sur la page qui s’ouvre, collez un manifeste comme l’exemple suivant dans le champ de texte et cliquez sur le bouton Créer pour déployer le déploiement NGINX Plus Ingress Controller pour Kubernetes.

    Notez que nous intégrons un secret avec un certificat TLS et une clé dans les champs defaultSecret et wildcardTLS . Cela permet la terminaison et le transfert TLS sans nécessiter que le secret soit inclus dans les politiques d'entrée.

    Il existe de nombreuses options que vous pouvez définir lors de la configuration du contrôleur d'entrée NGINX Plus pour Kubernetes, comme indiqué dans notre référentiel GitHub .

    apiVersion: k8s.nginx.org/v1alpha1kind: NginxIngressController
    metadata:
      name: my-nginx-ingress-controller
      namespace: nginx-ingress
    spec:
      enableCRDs: true
      image:
        pullPolicy: Always
        repository: registry.hub.docker.com/nginx/nginx-ingress
        tag: edge
      nginxPlus: false
      serviceType: LoadBalancer
      type: deployment
      replicas: 2
      defaultSecret: nginx-ingress/default-server-secret
      wildcardTLS: default/app-secret
      configMapData:
        error-log-level: debug
      enableTLSPassthrough: true
      globalConfiguration: nginx-ingress/nginx-configuration
  8. Pour vérifier le déploiement, exécutez les commandes suivantes dans un terminal. Comme indiqué dans la sortie, le manifeste que nous avons utilisé à l’étape précédente a déployé deux répliques du contrôleur d’entrée NGINX Plus et les a exposées avec un service LoadBalancer . (La sortie de la commande get est répartie sur plusieurs lignes pour plus de lisibilité.)

    # oc get pods -n nginx-ingressNAME                                          READY  STATUS   RESTARTS  AGE
    my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
    my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
    nginx-ingress-operator-dd546d869-xxxxx        1/1    Running  0         56m
    
    # oc get svc –n nginx-ingress
    my-nginx-ingress-controller      LoadBalancer   172.xx.48.254    <pending>  ...   
    nginx-ingress-operator-metrics   ClusterIP      172.xx.209.190   <none>     ...   
    
        ... 80:32028/TCP,443:31973/TCP   10m
        ... 80:32028/TCP,443:31973/TCP   10m
  9. Exécutez la commande suivante pour vérifier que le contrôleur d’entrée NGINX Plus répond aux demandes. Pour public_IP_address, remplacez l'adresse IP externe du service LoadBalancer exposant le contrôleur d'entrée NGINX Plus.

    Remarquez qu’à cette étape, la commande renvoie 404 Non trouvé. Cela signifie que vous n'avez pas encore configuré ni déployé de ressource Ingress pour acheminer le trafic vers les Pods backend. Pour en savoir plus, consultez notre documentation.

    # curl public_IP_address <html> 
    <head><title>404 Not Found</title></head> 
    <body bgcolor="white"> 
    <center><h1>404 Not Found</h1></center> 
    <hr><center>nginx/1.13.4</center> 
    </body> 
    </html>

    Sachez que vous pouvez soumettre plusieurs manifestes pour la ressource NginxIngressController ; nous créons un déploiement distinct pour chacun d'eux. L'Operator prend aussi en charge les déploiements sur différents espaces de noms. Vous pouvez spécifier l'espace de noms dans la section metadata du manifeste.

Et ensuite ?

L'opérateur d'entrée NGINX vous aide à gérer votre déploiement de contrôleur d'entrée NGINX Plus, notamment avec :

  • Configuration – Lancez un déploiement de base avec seulement quelques paramètres d’entrée et un manifeste
  • Mise à l'échelle – Ajoutez et supprimez des répliques de manière transparente
  • Mise à niveau – Tirez parti des mises à jour continues sans temps d'arrêt
  • Désinstallation – Assurez-vous que tous les objets Operator et Kubernetes Ingress Controller sont correctement et en toute sécurité supprimés

Maintenant que le contrôleur d’entrée NGINX Plus est prêt et déployé, consultez notre documentation et notre référentiel GitHub pour utiliser les fonctionnalités avancées de NGINX Plus dans OpenShift.

Pas encore client ? Pour essayer NGINX Plus et Ingress Controller, démarrez votre essai gratuit de 30 jours dès aujourd'hui ou contactez-nous pour discuter de vos cas d'utilisation .

La valeur de Red Hat + NGINX


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."