Configuration d'un référentiel de graphiques Helm v3 dans Amazon S3 - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d'un référentiel de graphiques Helm v3 dans Amazon S3

Créée par Abhishek Sharma (AWS)

Environnement : PoC ou pilote

Technologies : DevOps ; Conteneurs et microservices ; Modernisation

Charge de travail : toutes les autres charges de travail

Services AWS : Amazon S3

Récapitulatif

Ce modèle vous aide à gérer efficacement les graphiques Helm v3 en intégrant le référentiel Helm v3 dans Amazon Simple Storage Service (Amazon S3) sur le cloud Amazon Web Services (AWS). Pour utiliser ce modèle, vous devez être familiarisé avec Kubernetes et avec Helm, qui est un gestionnaire de packages Kubernetes. L'utilisation des référentiels Helm pour stocker les graphiques et les versions des cartes de contrôle peut améliorer le temps moyen de restauration (MTTR) en cas de panne. 

Ce modèle utilise AWS CodeCommit pour la création du référentiel Helm, et il utilise un compartiment S3 comme référentiel de diagrammes Helm, afin que les graphiques puissent être gérés de manière centralisée et accessibles par les développeurs de l'entreprise.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif

  • Python version 2.7.12 ou ultérieure

  • pip

  • Un cloud privé virtuel (VPC) avec des sous-réseaux et une instance Amazon Elastic Compute Cloud (Amazon EC2) 

  • Git installé sur l'instance EC2

  • Accès à AWS Identity and Access Management (IAM) pour créer le compartiment S3

  • Accès IAM (par programmation ou par rôle) à Amazon S3 depuis la machine cliente

  • CodeCommit Référentiel AWS

  • Interface de ligne de commande AWS (AWS CLI)

Versions du produit

  • Casque v3

  • Python version 2.7.12 ou ultérieure

Architecture

Pile technologique cible

  • Amazon S3

  • AWS CodeCommit

  • Helm

  • Kubectl

  • Python et pip

  • Git

  • plug-in helm-s3

Architecture cible

Référentiel Helm dans CodeCommit, instance EC2 avec Helm, Git et helm-s3, graphiques Helm dans Amazon S3.

Automatisation et mise à l'échelle

  • Vous pouvez intégrer Helm à votre outil d'automatisation d'intégration continue/de livraison continue (CI/CD) existant pour automatiser le packaging et le contrôle des versions des graphiques Helm (hors de portée de ce modèle).

  • GitVersion ou les numéros de version de Jenkins peuvent être utilisés pour automatiser le contrôle de version des graphiques.

Outils

  • Helm — Helm est un gestionnaire de packages pour Kubernetes qui vous aide à installer et à gérer des applications sur votre cluster Kubernetes.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) est un service de stockage pour Internet. Vous pouvez utiliser Amazon S3 pour stocker et récupérer n'importe quelle quantité de données, n'importe quand et depuis n'importe quel emplacement sur le Web.

  • plugin helm-s3 — Le plug-in helm-s3 prend en charge l'interaction avec Amazon S3. Il peut être utilisé avec Helm v2 ou Helm v3.

Bonnes pratiques

< Auteur Supprimer ces notes : fournissez une liste de directives et de recommandations qui peuvent aider les utilisateurs à implémenter ce modèle de manière plus efficace. >

Épopées

TâcheDescriptionCompétences requises

Installez le client Helm v3.

Pour télécharger et installer le client Helm sur votre système local, exécutez la commande suivante : sudo curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Administrateur cloud, DevOps ingénieur

Validez l'installation de Helm.

Pour valider le client Helm, exécutez la commande suivante : helm version --short

Administrateur cloud, DevOps ingénieur
TâcheDescriptionCompétences requises

Créez un compartiment S3 pour les diagrammes Helm.

Créez un compartiment S3 unique. Dans le compartiment, créez un dossier appeléstable/myapp. L'exemple de ce modèle utilise s3://my-helm-charts/stable/myapp comme référentiel graphique cible.

Administrateur cloud, DevOps ingénieur

Installez le plugin helm-s3 pour Amazon S3.

Pour installer le plugin helm-s3 sur votre machine cliente, exécutez la commande suivante : helm plugin install https://github.com/hypnoglow/helm-s3.git

Administrateur cloud, DevOps ingénieur

Initialisez le référentiel Amazon S3 Helm.

Pour initialiser le dossier cible en tant que référentiel Helm, utilisez la commande suivante : helm s3 init s3://my-helm-charts/stable/myapp 

La commande crée un index.yaml fichier dans la cible pour suivre toutes les informations du graphique stockées à cet emplacement.

Administrateur cloud, DevOps ingénieur

Vérifiez le dépôt Helm nouvellement créé.

Pour vérifier que le index.yaml fichier a été créé, exécutez la commande suivante : aws s3 ls s3://my-helm-charts/stable/myapp/

Administrateur cloud, DevOps ingénieur

Ajoutez le référentiel Amazon S3 à Helm sur la machine cliente.

Pour ajouter l'alias du référentiel cible à la machine cliente Helm, utilisez la commande suivante : helm repo add stable-myapp s3://my-helm-charts/stable/myapp/

Administrateur cloud, DevOps ingénieur
TâcheDescriptionCompétences requises

Clonez vos cartes Helm.

Si aucun graphique Helm local n'est présent dans votre CodeCommit dépôt, clonez-les depuis votre GitHub dépôt en exécutant la commande suivante : git clone <url_of_your_helm_source_code>.git

Administrateur cloud, DevOps ingénieur

Package de la carte Helm locale.

Pour empaqueter le graphique que vous avez créé ou cloné, utilisez la commande suivante : helm package ./my-app  

Par exemple, ce modèle utilise le my-app graphique. La commande regroupe tout le contenu du dossier my-app graphique dans un fichier d'archive, dont le nom est basé sur le numéro de version indiqué dans le Chart.yaml fichier.

Administrateur cloud, DevOps ingénieur

Stockez le package local dans le référentiel Amazon S3 Helm.

Pour télécharger le package local dans le référentiel Helm d'Amazon S3, exécutez la commande suivante : helm s3 push ./my-app-0.1.0.tgz stable-myapp

Dans la commande, my-app figurent le nom du dossier de votre graphique, 0.1.0 la version du graphique mentionnée dans Chart.yaml et stable-myapp l'alias du référentiel cible.

Administrateur cloud, DevOps ingénieur

Recherchez le graphique Helm.

Pour vérifier que le graphique apparaît à la fois localement et dans le référentiel Amazon S3 Helm, exécutez la commande suivante : helm search repo stable-myapp

Administrateur cloud, DevOps ingénieur
TâcheDescriptionCompétences requises

Modifiez et empaquetez le graphique.

Dansvalues.yaml, définissez la replicaCount valeur sur1, puis empaquetez le graphique, en changeant cette fois la version Chart.yaml en0.1.1. Le contrôle des versions est idéalement réalisé grâce à l'automatisation en utilisant des outils tels que GitVersion les numéros de build Jenkins dans un pipeline CI/CD. L'automatisation du numéro de version n'est pas couverte par ce modèle. Pour empaqueter le graphique, exécutez la commande suivante : helm package ./my-app/

Administrateur cloud, DevOps ingénieur

Transférez la nouvelle version vers le référentiel Helm d'Amazon S3.

Pour transférer le nouveau package, version 0.1.1, vers le référentiel my-helm-chartsHelm d'Amazon S3, exécutez la commande suivante : helm s3 push ./my-app-0.1.1.tgz stable-myapp

Administrateur cloud, DevOps ingénieur

Vérifiez le graphique Helm mis à jour.

Pour vérifier que le graphique mis à jour apparaît à la fois localement et dans le référentiel Amazon S3 Helm, exécutez les commandes suivantes.

helm repo update

helm search repo stable-myapp

Administrateur cloud, DevOps ingénieur
TâcheDescriptionCompétences requises

Recherchez toutes les versions du graphique my-app.

Pour afficher toutes les versions disponibles d'un graphique, exécutez la commande suivante avec l'--versionsindicateur : helm search repo my-app --versions 

Sans le drapeau, Helm affiche par défaut la dernière version téléchargée d'un graphique.

DevOps Ingénieur

Installez un graphique depuis le référentiel Amazon S3 Helm.

L'installation automatique n'est pas couverte par ce modèle, mais vous pouvez l'installer manuellement. Les résultats de la recherche de la tâche précédente montrent les différentes versions du my-app graphique. Pour installer la nouvelle version (0.1.1) depuis le référentiel Amazon S3 Helm, utilisez la commande suivante : helm upgrade --install my-app-release stable-myapp/my-app --version 0.1.1 --namespace dev

DevOps Ingénieur
TâcheDescriptionCompétences requises

Passez en revue les détails d'une révision spécifique.

La restauration automatique n'est pas couverte par ce modèle, mais vous pouvez revenir manuellement à une version antérieure. Avant de passer à une version fonctionnelle ou de revenir à une version fonctionnelle, et pour une couche de validation supplémentaire avant d'installer une révision, consultez les valeurs transmises à chacune des révisions à l'aide de la commande suivante : helm get values --revision=2 my-app-release

DevOps Ingénieur

Retournez à une version précédente.

La restauration automatique est hors de portée de ce modèle. Pour revenir manuellement à une version précédente, utilisez la commande suivante : helm rollback my-app-release 1 

Cet exemple revient à la révision numéro 1.

DevOps Ingénieur

Ressources connexes