6.3. Création d’un manifeste Kubernetes pour OpenShift Dedicated


Alors que l’image du conteneur est le bloc de base d’une application conteneurisée, plus d’informations sont nécessaires pour gérer et déployer cette application dans un environnement Kubernetes tel que OpenShift Dedicated. Les étapes suivantes typiques après la création d’une image sont les suivantes:

  • Comprendre les différentes ressources avec lesquelles vous travaillez dans Kubernetes se manifeste
  • Faites quelques décisions sur le type d’application que vous exécutez
  • Rassembler les composants de support
  • Créez un manifeste et un magasin qui se manifestent dans un dépôt Git afin que vous puissiez le stocker dans un système de version source, l’auditer, le suivre, le promouvoir et le déployer dans l’environnement suivant, le retourner aux versions antérieures, si nécessaire, et le partager avec d’autres personnes.

6.3.1. À propos de Kubernetes pods et services

Alors que l’image du conteneur est l’unité de base avec docker, les unités de base avec lesquelles Kubernetes fonctionne sont appelées pods. Les pods représentent la prochaine étape dans la création d’une application. La gousse peut contenir un ou plusieurs contenants. La clé est que le pod est l’unité unique que vous déployez, mettez à l’échelle et gérez.

L’évolutivité et les espaces de noms sont probablement les principaux éléments à considérer lors de la détermination de ce qui se passe dans un pod. Afin de faciliter votre déploiement, vous voudrez peut-être déployer un conteneur dans un pod et inclure son propre conteneur d’enregistrement et de surveillance dans le pod. Ensuite, lorsque vous exécutez la pod et que vous devez mettre à l’échelle une instance supplémentaire, ces autres conteneurs sont mis à l’échelle avec elle. Dans le cas des espaces de noms, les conteneurs d’un pod partagent les mêmes interfaces réseau, volumes de stockage partagés et limitations de ressources, tels que la mémoire et le CPU, ce qui facilite la gestion du contenu du pod en tant qu’unité unique. Les conteneurs dans un pod peuvent également communiquer les uns avec les autres en utilisant des communications inter-processus standard, telles que les sémaphores du système V ou la mémoire partagée POSIX.

Alors que les gousses individuelles représentent une unité évolutive dans Kubernetes, un service fournit un moyen de regrouper un ensemble de gousses pour créer une application complète et stable qui peut accomplir des tâches telles que l’équilibrage de charge. Le service est également plus permanent qu’un pod car le service reste disponible à partir de la même adresse IP jusqu’à ce que vous le supprimiez. Lorsque le service est utilisé, il est demandé par nom et le cluster OpenShift Dedicated résout ce nom dans les adresses IP et les ports où vous pouvez atteindre les pods qui composent le service.

De par leur nature, les applications conteneurisées sont séparées des systèmes d’exploitation où elles s’exécutent et, par extension, de leurs utilisateurs. Dans une partie de votre manifeste Kubernetes décrit comment exposer l’application à des réseaux internes et externes en définissant des politiques réseau qui permettent un contrôle fin sur la communication avec vos applications conteneurisées. Afin de connecter les requêtes entrantes pour HTTP, HTTPS et d’autres services de l’extérieur de votre cluster à des services à l’intérieur de votre cluster, vous pouvez utiliser une ressource Ingress.

Lorsque votre conteneur nécessite un stockage sur disque au lieu d’un stockage de base de données, qui peut être fourni via un service, vous pouvez ajouter des volumes à vos manifestes pour que ce stockage soit disponible à vos pods. Configurez les manifestes pour créer des volumes persistants (PV) ou créer dynamiquement des volumes qui sont ajoutés à vos définitions Pod.

Après avoir défini un groupe de pods qui composent votre application, vous pouvez définir ces pods dans les objets Déploiement et DéploiementConfig.

6.3.2. Les types d’application

Ensuite, considérez comment votre type d’application influence comment l’exécuter.

Kubernetes définit différents types de charges de travail qui conviennent à différents types d’applications. Afin de déterminer la charge de travail appropriée pour votre demande, considérez si la demande est:

  • Destiné à courir jusqu’à l’achèvement et être fait. Exemple est une application qui commence à produire un rapport et sort lorsque le rapport est terminé. L’application pourrait ne pas fonctionner à nouveau pendant un mois. Les objets dédiés OpenShift pour ces types d’applications incluent les objets Job et CronJob.
  • Je m’attendais à courir en continu. Dans le cas des applications de longue date, vous pouvez écrire un déploiement.
  • Il faut être très disponible. Lorsque votre application nécessite une disponibilité élevée, vous souhaitez dimensionner votre déploiement pour avoir plus d’une instance. L’objet Déploiement ou DéploiementConfig peut incorporer un ensemble de répliques pour ce type d’application. Avec les ensembles de répliques, les pods courent sur plusieurs nœuds pour s’assurer que l’application est toujours disponible, même si un travailleur descend.
  • Il faut courir sur tous les nœuds. Certains types d’applications Kubernetes sont destinés à s’exécuter dans le cluster lui-même sur chaque nœud maître ou travailleur. DNS et les applications de surveillance sont des exemples d’applications qui doivent fonctionner en continu sur chaque nœud. Il est possible d’exécuter ce type d’application sous la forme d’un jeu de démons. Il est également possible d’exécuter un démon sur un sous-ensemble de nœuds, basé sur des étiquettes de nœuds.
  • Besoin d’une gestion du cycle de vie. Lorsque vous souhaitez distribuer votre application pour que d’autres puissent l’utiliser, envisagez de créer un opérateur. Les opérateurs vous permettent de construire l’intelligence, afin qu’il puisse gérer des choses comme les sauvegardes et les mises à niveau automatiquement. Couplés avec le gestionnaire de cycle de vie de l’opérateur (OLM), les gestionnaires de clusters peuvent exposer les opérateurs à des espaces de noms sélectionnés afin que les utilisateurs du cluster puissent les exécuter.
  • Avoir des exigences d’identité ou de numérotation. La demande peut avoir des exigences d’identité ou de numérotation. À titre d’exemple, vous devrez peut-être exécuter exactement trois instances de l’application et nommer les instances 0, 1 et 2. Cet ensemble est adapté à cette application. Les ensembles d’état sont les plus utiles pour les applications qui nécessitent un stockage indépendant, tels que les bases de données et les clusters de gardiens de zoo.

6.3.3. Composants de support disponibles

L’application que vous écrivez peut avoir besoin de composants de support, comme une base de données ou un composant de journalisation. Afin de répondre à ce besoin, vous pourriez être en mesure d’obtenir le composant requis à partir des catalogues suivants qui sont disponibles dans la console Web dédiée OpenShift:

  • OperatorHub, qui est disponible dans chaque cluster OpenShift Dedicated 4. Le OperatorHub met les Opérateurs à la disposition de Red Hat, des partenaires certifiés Red Hat et des membres de la communauté à l’opérateur de cluster. L’opérateur de cluster peut rendre ces opérateurs disponibles dans tous les espaces de noms ou sélectionnés dans le cluster, afin que les développeurs puissent les lancer et les configurer avec leurs applications.
  • Les modèles, qui sont utiles pour un type d’application unique, où le cycle de vie d’un composant n’est pas important après son installation. Le modèle fournit un moyen facile de commencer à développer une application Kubernetes avec un minimum de frais généraux. Le modèle peut être une liste de définitions de ressources, qui pourraient être le déploiement, le service, la route ou d’autres objets. Lorsque vous souhaitez modifier des noms ou des ressources, vous pouvez définir ces valeurs en tant que paramètres dans le modèle.

Les opérateurs et les modèles supportés peuvent être configurés selon les besoins spécifiques de votre équipe de développement, puis les rendre disponibles dans les espaces de noms dans lesquels vos développeurs travaillent. Beaucoup de gens ajoutent des modèles partagés à l’espace de noms openshift car il est accessible depuis tous les autres espaces de noms.

6.3.4. Appliquer le manifeste

Les manifestes de Kubernetes vous permettent de créer une image plus complète des composants qui composent vos applications Kubernetes. Ecrire ces manifestes sous forme de fichiers YAML et les déployer en les appliquant au cluster, par exemple en exécutant la commande oc application.

6.3.5. Les prochaines étapes

À ce stade, envisagez des moyens d’automatiser votre processus de développement de conteneurs. Idéalement, vous avez une sorte de pipeline CI qui construit les images et les pousse vers un registre. En particulier, un pipeline GitOps intègre le développement de vos conteneurs aux dépôts Git que vous utilisez pour stocker le logiciel nécessaire à la construction de vos applications.

Le flux de travail à ce stade pourrait ressembler à:

  • Jour 1: Vous écrivez un peu de YAML. Ensuite, vous exécutez la commande oc appliquer pour appliquer ce YAML sur le cluster et tester qu’il fonctionne.
  • Jour 2: Vous mettez votre fichier de configuration de conteneur YAML dans votre propre dépôt Git. À partir de là, les personnes qui veulent installer cette application, ou vous aider à l’améliorer, peuvent retirer le YAML et l’appliquer à leur cluster pour exécuter l’application.
  • Jour 3: envisagez d’écrire un opérateur pour votre demande.
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