18.3. Tutoriel: Déploiement d’une application
18.3.1. Aperçu du laboratoire Copier lienLien copié sur presse-papiers!
18.3.1.1. Les ressources du laboratoire Copier lienLien copié sur presse-papiers!
- 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.yamlapiVersion: 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: Opaqueaccueil > ostoy-microservice-deployment.yamlapiVersion: 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-microserviceLe seau S3 manifeste pour ACK S3
ajouter au panier S3-bucket.yamlapiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: ostoy-bucket namespace: ostoy spec: name: ostoy-bucket
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 Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
18.3.1.4. Comprendre l’interface utilisateur d’OSToy Copier lienLien copié sur presse-papiers!
- Affiche le nom de pod qui a servi votre navigateur la page.
- Accueil: La page principale de l’application où vous pouvez effectuer certaines des fonctions listées que nous explorerons.
- Stockage persistant : vous permet d’écrire des données sur le volume persistant lié à cette application.
- Configuration Maps: affiche le contenu des configmaps disponibles pour l’application et les paires key:value.
- Les secrets : Montre le contenu des secrets disponibles pour l’application et les paires key:value.
- ENV Variables: affiche les variables d’environnement disponibles pour l’application.
- Le réseautage : Outils pour illustrer le réseautage au sein de l’application.
- La mise à l’échelle automatique de Pod: Outil pour augmenter la charge des pods et tester l’HPA.
ACK S3: Option: Intégrer avec AWS S3 pour lire et écrire des objets dans un seau.
NoteAfin 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.
- À propos : Affiche plus d’informations sur l’application.