Fermer

novembre 25, 2022

Gérer les services ECS avec état à l’aide de REX-Ray

Gérer les services ECS avec état à l’aide de REX-Ray


Introduction

Nous recherchions une solution qui nous aiderait à monter des centaines de Go de stockage dans les tâches ECS générées par des services ECS spécifiques. Le cluster ECS fournit une option pour augmenter le stockage alloué aux tâches, mais cela s’applique à tous les services ECS exécutés à l’intérieur du cluster. Parfois, nous avons besoin que le même entrepôt soit disponible pour de nouvelles tâches ECS.

REX-Ray est une gestion de stockage open source basée sur le framework libStorage. Il prend en charge nos deux cas d’utilisation, c’est-à-dire qu’il nous aide à déployer des applications avec état sur ECS. Cette fonctionnalité pourrait être étendue à divers cas d’utilisation, tels que l’exécution de bases de données ou de Jenkins dans un environnement conteneurisé. Il prend en charge plusieurs outils d’orchestration Docker (Kubernetes, Mesos Frameworks, Docker Swarm, etc.) pour orchestrer automatiquement les tâches de stockage entre les hôtes du cluster.

Énoncé du problème

  • Pour gérer les services ECS avec état afin de conserver et de conserver ses données après la fin du cycle de vie du conteneur.
  • Pour fournir un stockage supplémentaire dans les tâches ECS où plusieurs fichiers volumineux doivent être téléchargés et traités.

Approche de solution

Nous avons besoin d’un stockage supplémentaire sur un chemin spécifique dans les tâches ECS pour un service ECS particulier.

« REX-Ray – un plug-in de volume Docker » offre la possibilité d’utiliser le stockage partagé en tant que volume Docker. Dans AWS, il prend en charge EBS pour être utilisé comme volume docker dans les tâches ECS.

Étapes pour configurer le plugin :

  1. Chaque instance EC2 s’exécutant dans un cluster ECS doit avoir le plug-in installé.
    Ajoutez la commande ci-dessous aux données utilisateur dans le modèle de lancement utilisé pour lancer des instances dans le cluster ECS.
    #docker plugin install rexray/ebs --grant-all-permissions
  2. Configurez la définition de tâche pour utiliser le plug-in REX-Ray comme ci-dessous dans la section « Ajouter un volume » :
    • « Nom » – Le volume EBS sera créé en utilisant ce nom. S’il a déjà été créé, indiquez le nom du volume.
    • « Type de volume » – Sélectionnez le type de volume comme « Docker ».
    • « Pilote » – Spécifiez le nom du pilote comme « rexray/ebs »
    • « Portée » – Sélectionnez « tâche » si vous avez besoin qu’un nouveau volume soit créé avec chaque nouvelle tâche créée sous le service ECS. Sélectionnez « partagé » si vous avez besoin que la nouvelle tâche utilise le volume existant utilisé par une tâche en cours d’exécution précédente.
      Lors de l’utilisation du mode « partagé », veuillez vérifier son comportement lors de l’exécution de plusieurs tâches dans des environnements simples et multiAz.
    • « Enable auto-provisioning » : Cette option est applicable en mode « partagé ». En mode « partagé », vous pouvez soit utiliser le volume existant, soit, si le volume n’est pas présent, le plugin en créera un pour vous.
    • « Options du pilote » : sous les options du pilote, la taille du volume peut être spécifiée en cas de création d’un nouveau volume.
  3. L’étape suivante consiste à mettre à jour le service avec la nouvelle révision de tâche créée après la configuration ci-dessus. Une fois le service déployé, vous devriez pouvoir voir une sortie similaire sur l’instance EC2 à l’aide de la commande « lsblk » :

Débogage

  • Vérifiez si le plug-in REX-Ray est activé sur l’instance de conteneur en affichant ses attributs. Recherchez « rexray » dans la liste, s’il est présent, le plugin est activé.

  • L’indicateur de débogage peut être utilisé avec n’importe quelle commande afin d’obtenir la sortie détaillée :
    # rexray volume -l débogage
  • Assurez-vous que les autorisations de création EBS sont attachées aux instances EC2.
  • Lorsque « Scope » est sélectionné comme « tâche », à la fin des tâches ECS, le plug-in rexray ne supprime pas les volumes détachés.

Plus de cas d’utilisation :

Nous utilisons ce plugin depuis plus de 3 ans et il fonctionne comme prévu.

D’autres cas d’utilisation où nous l’utilisons sont :

  • Exécution de Ldap dans ECS et maintien de la configuration dans les volumes EBS à l’aide du plugin REX-Ray en mode « partagé ».
  • Exécution de Nexus en tant que service ECS tout en conservant la configuration dans le volume EBS à l’aide de ce plug-in.
  • REX-Ray prend en charge plusieurs systèmes d’exploitation et fournisseurs de stockage et peut être utilisé de nombreuses façons selon les besoins. Lien de référence : https://rexray.readthedocs.io/en/stable/

TROUVÉ CELA UTILE ? PARTAGEZ-LE




Source link