18.3. Tutoriel: Déploiement d’une application


18.3.1. Aperçu du laboratoire

18.3.1.1. Les ressources du laboratoire

  • Code source pour l’application OSToy
  • Image de conteneur frontal OSToy
  • Image de conteneur OSToy microservice
  • Déploiement Définition des fichiers YAML:

    accueil > ostoy-frontend-deployment.yaml

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: ostoy-pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ostoy-frontend
      labels:
        app: ostoy
    spec:
      selector:
        matchLabels:
          app: ostoy-frontend
      strategy:
        type: Recreate
      replicas: 1
      template:
        metadata:
          labels:
            app: ostoy-frontend
        spec:
          # Uncomment to use with ACK portion of the workshop
          # If you chose a different service account name please replace it.
          # serviceAccount: ostoy-sa
          containers:
          - name: ostoy-frontend
            securityContext:
              allowPrivilegeEscalation: false
              runAsNonRoot: true
              seccompProfile:
                type: RuntimeDefault
              capabilities:
                drop:
                - ALL
            image: quay.io/ostoylab/ostoy-frontend:1.6.0
            imagePullPolicy: IfNotPresent
            ports:
            - name: ostoy-port
              containerPort: 8080
            resources:
              requests:
                memory: "256Mi"
                cpu: "100m"
              limits:
                memory: "512Mi"
                cpu: "200m"
            volumeMounts:
            - name: configvol
              mountPath: /var/config
            - name: secretvol
              mountPath: /var/secret
            - name: datavol
              mountPath: /var/demo_files
            livenessProbe:
              httpGet:
                path: /health
                port: 8080
              initialDelaySeconds: 10
              periodSeconds: 5
            env:
            - name: ENV_TOY_SECRET
              valueFrom:
                secretKeyRef:
                  name: ostoy-secret-env
                  key: ENV_TOY_SECRET
            - name: MICROSERVICE_NAME
              value: OSTOY_MICROSERVICE_SVC
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          volumes:
            - name: configvol
              configMap:
                name: ostoy-configmap-files
            - name: secretvol
              secret:
                defaultMode: 420
                secretName: ostoy-secret
            - name: datavol
              persistentVolumeClaim:
                claimName: ostoy-pvc
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: ostoy-frontend-svc
      labels:
        app: ostoy-frontend
    spec:
      type: ClusterIP
      ports:
        - port: 8080
          targetPort: ostoy-port
          protocol: TCP
          name: ostoy
      selector:
        app: ostoy-frontend
    ---
    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      name: ostoy-route
    spec:
      to:
        kind: Service
        name: ostoy-frontend-svc
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: ostoy-secret-env
    type: Opaque
    data:
      ENV_TOY_SECRET: VGhpcyBpcyBhIHRlc3Q=
    ---
    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: ostoy-configmap-files
    data:
      config.json:  '{ "default": "123" }'
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: ostoy-secret
    data:
      secret.txt: VVNFUk5BTUU9bXlfdXNlcgpQQVNTV09SRD1AT3RCbCVYQXAhIzYzMlk1RndDQE1UUWsKU01UUD1sb2NhbGhvc3QKU01UUF9QT1JUPTI1
    type: Opaque
    Copy to Clipboard Toggle word wrap

    accueil > ostoy-microservice-deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ostoy-microservice
      labels:
        app: ostoy
    spec:
      selector:
        matchLabels:
          app: ostoy-microservice
      replicas: 1
      template:
        metadata:
          labels:
            app: ostoy-microservice
        spec:
          containers:
          - name: ostoy-microservice
            securityContext:
              allowPrivilegeEscalation: false
              runAsNonRoot: true
              seccompProfile:
                type: RuntimeDefault
              capabilities:
                drop:
                - ALL
            image: quay.io/ostoylab/ostoy-microservice:1.5.0
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 8080
              protocol: TCP
            resources:
              requests:
                memory: "128Mi"
                cpu: "50m"
              limits:
                memory: "256Mi"
                cpu: "100m"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: ostoy-microservice-svc
      labels:
        app: ostoy-microservice
    spec:
      type: ClusterIP
      ports:
        - port: 8080
          targetPort: 8080
          protocol: TCP
      selector:
        app: ostoy-microservice
    Copy to Clipboard Toggle word wrap

  • Le seau S3 manifeste pour ACK S3

    ajouter au panier S3-bucket.yaml

    apiVersion: s3.services.k8s.aws/v1alpha1
    kind: Bucket
    metadata:
      name: ostoy-bucket
      namespace: ostoy
    spec:
      name: ostoy-bucket
    Copy to Clipboard Toggle word wrap

Note

Afin de simplifier le déploiement de l’application OSToy, tous les objets requis dans les manifestes de déploiement ci-dessus sont regroupés. Dans le cas d’un déploiement d’entreprise typique, un fichier manifeste distinct pour chaque objet Kubernetes est recommandé.

18.3.1.2. À propos de l’application OSToy

OSToy est une application Node.js simple que vous allez déployer dans un cluster ROSA pour vous aider à explorer les fonctionnalités de Kubernetes. Cette application dispose d’une interface utilisateur où vous pouvez:

  • Écrivez des messages dans le journal (stdout / stderr).
  • Bloquez intentionnellement l’application pour voir l’auto-guérison.
  • Basculer une sonde de vivacité et surveiller le comportement d’OpenShift.
  • Lisez les cartes de configuration, les secrets et les variables env.
  • En cas de connexion au stockage partagé, lisez et écrivez des fichiers.
  • Contrôlez la connectivité réseau, le DNS intra-cluster et l’intra-communication avec le microservice inclus.
  • Augmentez la charge pour afficher la mise à l’échelle automatique des gousses pour gérer la charge à l’aide de l’Autoscaler Horizontal Pod.
  • Facultatif : Connectez-vous à un seau AWS S3 pour lire et écrire des objets.

18.3.1.3. Diagramme d’application OSToy

18.3.1.4. Comprendre l’interface utilisateur d’OSToy

  1. Affiche le nom de pod qui a servi votre navigateur la page.
  2. Accueil: La page principale de l’application où vous pouvez effectuer certaines des fonctions listées que nous explorerons.
  3. Stockage persistant : vous permet d’écrire des données sur le volume persistant lié à cette application.
  4. Configuration Maps: affiche le contenu des configmaps disponibles pour l’application et les paires key:value.
  5. Les secrets : Montre le contenu des secrets disponibles pour l’application et les paires key:value.
  6. ENV Variables: affiche les variables d’environnement disponibles pour l’application.
  7. Le réseautage : Outils pour illustrer le réseautage au sein de l’application.
  8. La mise à l’échelle automatique de Pod: Outil pour augmenter la charge des pods et tester l’HPA.
  9. ACK S3: Option: Intégrer avec AWS S3 pour lire et écrire des objets dans un seau.

    Note

    Afin de voir la section "ACK S3" d’OSToy, vous devez compléter la section ACK de cet atelier. Lorsque vous décidez de ne pas compléter cette section, l’application OSToy fonctionnera toujours.

  10. À propos : Affiche plus d’informations sur l’application.
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