18.11. Tutoriel: déploiements S2I


Il existe plusieurs méthodes pour déployer des applications dans OpenShift. Ce tutoriel explore à l’aide du constructeur intégré Source-à-Image (S2I). Comme mentionné dans la section Concepts OpenShift, S2I est un outil pour construire des images de conteneurs reproductibles au format Docker.

18.11.1. Conditions préalables

Les exigences suivantes doivent être remplies avant de pouvoir utiliser ce tutoriel.

  1. « vous avez créé un cluster ROSA.
  2. Enregistrez votre commande de connexion

    1. Lorsque vous n’êtes pas connecté via le CLI, dans OpenShift Cluster Manager, cliquez sur la flèche déroulante à côté de votre nom en haut à droite et sélectionnez Copier la commande de connexion.

    2. Le nouvel onglet s’ouvre. Entrez votre nom d’utilisateur et votre mot de passe, puis sélectionnez la méthode d’authentification.
    3. Cliquez sur Affichage du jeton
    4. Copiez la commande sous « Connectez-vous avec ce jeton ».
    5. Connectez-vous à l’interface de ligne de commande (CLI) en exécutant la commande copiée dans votre terminal. Il faut voir quelque chose de similaire à ce qui suit:

      $ oc login --token=RYhFlXXXXXXXXXXXX --server=https://api.osd4-demo.abc1.p1.openshiftapps.com:6443
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      Logged into "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided.
      
      You don't have any projects. You can try to create a new project, by running
      
      oc new-project <project name>
      Copy to Clipboard Toggle word wrap

  3. Créez un nouveau projet à partir du CLI en exécutant la commande suivante:

    $ oc new-project ostoy-s2i
    Copy to Clipboard Toggle word wrap

18.11.2. Fourche le référentiel OSToy

La section suivante se concentre sur le déclenchement de builds automatisés en fonction des modifications apportées au code source. Il faut configurer un webhook GitHub pour déclencher les builds S2I lorsque vous poussez du code dans votre Repo GitHub. Afin de configurer le webhook, vous devez d’abord fourcher le repo.

Note

Dans ce guide, remplacez &lt;UserName&gt; par votre propre nom d’utilisateur GitHub pour les URL suivantes.

  1. Ajouter secret à OpenShift

    L’exemple imite un fichier .env et montre à quel point il est facile de les déplacer directement dans un environnement OpenShift. Les fichiers peuvent même être renommés dans le Secret. Dans votre CLI entrez la commande suivante, remplaçant &lt;UserName&gt; par votre nom d’utilisateur GitHub:

    $ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/secret.yaml
    Copy to Clipboard Toggle word wrap
  2. Ajouter ConfigMap à OpenShift

    L’exemple imite un fichier de configuration HAProxy, et est généralement utilisé pour remplacer les configurations par défaut dans une application OpenShift. Les fichiers peuvent même être renommés dans le ConfigMap.

    Dans votre CLI entrez la commande suivante, remplaçant &lt;UserName&gt; par votre nom d’utilisateur GitHub:

    $ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/configmap.yaml
    Copy to Clipboard Toggle word wrap
  3. Déployer le microservice

    Il faut d’abord déployer le microservice pour s’assurer que les variables d’environnement SERVICE sont disponibles à partir de l’application UI. --context-dir est utilisé ici pour construire uniquement l’application définie dans le répertoire microservice dans le référentiel git. En utilisant l’étiquette de l’application nous permet de nous assurer que l’application d’interface utilisateur et le microservice sont tous deux regroupés dans l’interface utilisateur OpenShift. Exécutez la commande suivante dans le CLI pour créer le microservice, en remplaçant &lt;UserName&gt; par votre nom d’utilisateur GitHub:

    $ oc new-app https://github.com/<UserName>/ostoy \
        --context-dir=microservice \
        --name=ostoy-microservice \
        --labels=app=ostoy
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    --> Creating resources with label app=ostoy ...
        imagestream.image.openshift.io "ostoy-microservice" created
        buildconfig.build.openshift.io "ostoy-microservice" created
        deployment.apps "ostoy-microservice" created
        service "ostoy-microservice" created
    --> Success
        Build scheduled, use 'oc logs -f buildconfig/ostoy-microservice' to track its progress.
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose service/ostoy-microservice'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap

  4. Consultez l’état du microservice

    Avant de passer à l’étape suivante, nous devrions être sûrs que le microservice a été créé et fonctionne correctement en exécutant la commande suivante:

    $ oc status
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    In project ostoy-s2i on server https://api.myrosacluster.g14t.p1.openshiftapps.com:6443
    
    svc/ostoy-microservice - 172.30.47.74:8080
      dc/ostoy-microservice deploys istag/ostoy-microservice:latest <-
        bc/ostoy-microservice source builds https://github.com/UserName/ostoy on openshift/nodejs:14-ubi8
        deployment #1 deployed 34 seconds ago - 1 pod
    Copy to Clipboard Toggle word wrap

    Attendez que vous voyez qu’il a été déployé avec succès. Il est également possible de vérifier cela via l’interface utilisateur Web.

  5. Déployer l’interface utilisateur frontale

    L’application a été conçue pour s’appuyer sur plusieurs variables d’environnement pour définir des paramètres externes. Attachez le Secret et ConfigMap précédemment créés par la suite, ainsi que la création d’un Volume Persistent. Inscrivez ce qui suit dans le CLI:

    $ oc new-app https://github.com/<UserName>/ostoy \
        --env=MICROSERVICE_NAME=OSTOY_MICROSERVICE
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    --> Creating resources ...
        imagestream.image.openshift.io "ostoy" created
        buildconfig.build.openshift.io "ostoy" created
        deployment.apps "ostoy" created
        service "ostoy" created
    --> Success
        Build scheduled, use 'oc logs -f buildconfig/ostoy' to track its progress.
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose service/ostoy'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap

  6. Actualiser le déploiement

    Actualisez le déploiement pour utiliser une stratégie de déploiement « Recréer » (par opposition à la valeur par défaut de RollingUpdate) pour des déploiements cohérents avec des volumes persistants. Le raisonnement ici est que le PV est soutenu par EBS et en tant que tel ne prend en charge que la méthode RWO. « si le déploiement est mis à jour sans que toutes les gousses existantes ne soient tuées, il pourrait ne pas être en mesure de planifier un nouveau pod et de créer un PVC pour le PV car il est toujours lié à la gousse existante. » Lorsque vous utilisez EFS, vous n’avez pas à modifier cela.

    $ oc patch deployment ostoy --type=json -p \
        '[{"op": "replace", "path": "/spec/strategy/type", "value": "Recreate"}, {"op": "remove", "path": "/spec/strategy/rollingUpdate"}]'
    Copy to Clipboard Toggle word wrap
  7. Définir une sonde Liveness

    Créez une sonde de vie sur le déploiement pour s’assurer que le pod est redémarré si quelque chose n’est pas sain dans l’application. Inscrivez ce qui suit dans le CLI:

    $ oc set probe deployment ostoy --liveness --get-url=http://:8080/health
    Copy to Clipboard Toggle word wrap
  8. Joindre Secret, ConfigMap et PersistentVolume au déploiement

    Exécutez les commandes suivantes attachez votre secret, ConfigMap et PersistentVolume:

    1. Attachez le secret

      $ oc set volume deployment ostoy --add \
          --secret-name=ostoy-secret \
          --mount-path=/var/secret
      Copy to Clipboard Toggle word wrap
    2. Attachez ConfigMap

      $ oc set volume deployment ostoy --add \
          --configmap-name=ostoy-config \
          -m /var/config
      Copy to Clipboard Toggle word wrap
    3. Créer et joindre PersistentVolume

      $ oc set volume deployment ostoy --add \
          --type=pvc \
          --claim-size=1G \
          -m /var/demo_files
      Copy to Clipboard Toggle word wrap
  9. Exposer l’application UI en tant que route OpenShift

    Exécutez la commande suivante pour déployer ceci en tant qu’application HTTPS qui utilise les certificats de wildcard TLS inclus:

    $ oc create route edge --service=ostoy --insecure-policy=Redirect
    Copy to Clipboard Toggle word wrap
  10. Accédez à votre application avec les méthodes suivantes:

    • L’exécution de la commande suivante ouvre un navigateur Web avec votre application OSToy:

      $ python -m webbrowser "$(oc get route ostoy -o template --template='https://{{.spec.host}}')"
      Copy to Clipboard Toggle word wrap
    • Il est possible d’obtenir l’itinéraire de l’application et de copier et coller l’itinéraire dans votre navigateur en exécutant la commande suivante:

      $ oc get route
      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