Guide de démarrage rapide pour Helm

Helm est le gestionnaire de packages de Kubernetes. Il utilise des graphiques qui définissent un ensemble de ressources Kubernetes à déployer.

La compatibilité de Helm 3 avec les graphiques enregistrés en tant qu'images de conteneurs OCI est expérimentale. Pour en savoir plus sur les plans de Helm concernant la disponibilité générale de l'assistance OCI, consultez la page Proposition d'amélioration de la gestion de l'OMI par l'OCI.

Ce guide de démarrage rapide vous montre comment :

  • Créer un dépôt dans Artifact Registry
  • Créer un exemple de graphique
  • S'authentifier auprès du dépôt
  • Transférer le graphique dans le dépôt
  • Déployer le graphique

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activer les API Artifact Registry, Google Kubernetes Engine.

    Activer les API

  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  7. Activer les API Artifact Registry, Google Kubernetes Engine.

    Activer les API

Choisir une interface système

Pour suivre ce guide de démarrage rapide, utilisez Cloud Shell ou votre interface système locale.

Cloud Shell
Cloud Shell est un environnement shell permettant de gérer les ressources hébergées sur Google Cloud. Il est préinstallé avec Docker, Helm et l'outil de ligne de commande gcloud, l'interface de ligne de commande principale pour Google Cloud.
Interface système locale
Si vous préférez utiliser votre interface système locale, vous devez installer Docker et le SDK Cloud dans votre environnement.

Démarrer Cloud Shell

Pour lancer Cloud Shell, procédez comme suit :

  1. Accédez à Google Cloud Console.

    Google Cloud Console

  2. Cliquez sur le bouton Activer Cloud Shell : "".

    Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console. Cette interface système vous permet d'exécuter les commandes gcloud.

  3. Installer Helm 3.7.1 ou version ultérieure

    Exécutez helm version pour vérifier votre version.

    Helm 3.7.0 a apporté des modifications qui ne sont pas rétrocompatibles avec les anciennes versions de Helm. Helm 3.7.1 peut extraire des graphiques OCI empaquetés avec des versions précédentes de Helm 3 et utiliser les commandes de chart qui ont été introduites dans Helm 3.7.0.

  4. Activez la compatibilité expérimentale de Helm pour les images OCI à l'aide de la variable HELM_EXPERIMENTAL_OCI. Ajoutez la ligne suivante à ~/.bashrc (ou à ~/.zshrc sous macOS, ou dans tout fichier où votre interface système stocke les variables d'environnement):

    export HELM_EXPERIMENTAL_OCI=1
    
  5. Exécutez la commande suivante pour charger vos paramètres mis à jour:

    • Basse: source ~/.bashrc
    • Interface système Z: source ~/.zshrc

Configurer une interface système locale

Pour installer le SDK Cloud et Helm, procédez comme suit:

  1. Installez le SDK Cloud, qui inclut l'outil de ligne de commande gcloud. Pour mettre à jour une installation existante, exécutez la commande gcloud components update.

  2. Installer Helm 3.7.1 ou version ultérieure

    Exécutez helm version pour vérifier votre version.

    Helm 3.7.0 a apporté des modifications qui ne sont pas rétrocompatibles avec les anciennes versions de Helm. Helm 3.7.1 peut extraire des graphiques OCI empaquetés avec des versions précédentes de Helm 3 et utiliser les commandes de chart qui ont été introduites dans Helm 3.7.0.

  3. Activez la compatibilité expérimentale de Helm pour les images OCI à l'aide de la variable HELM_EXPERIMENTAL_OCI. Ajoutez la ligne suivante à ~/.bashrc (ou à ~/.zshrc sous macOS, ou dans tout fichier où votre interface système stocke les variables d'environnement):

    export HELM_EXPERIMENTAL_OCI=1
    
  4. Exécutez la commande suivante pour charger vos paramètres mis à jour:

    • Basse: source ~/.bashrc
    • Interface système Z: source ~/.zshrc

Créer un dépôt

Créez un dépôt Docker pour stocker l'exemple de graphique de ce guide de démarrage rapide.

Console

  1. Ouvrez la page Dépôts dans Cloud Console.

    Ouvrir la page "Dépôts"

  2. Cliquez sur Créer un dépôt.

  3. Spécifiez quickstart-helm-repo comme nom de dépôt.

  4. Choisissez le format Docker.

  5. Sous Type d'emplacement, sélectionnez Région, puis l'emplacement us-central1.

  6. Cliquez sur Create (Créer).

Le dépôt est ajouté à la liste des dépôts.

gcloud

  1. Exécutez la commande suivante pour créer un dépôt Docker nommé quickstart-helm-repo à l'emplacement us-central1 avec la description "docker repository".

    gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
    --location=us-central1 --description="Helm repository"
    
  2. Exécutez la commande suivante pour vérifier que votre dépôt a bien été créé.

    gcloud artifacts repositories list
    

Exécutez la commande gcloud artifacts pour en savoir plus sur les commandes Artifact Registry.

Créer un graphique

Pour ce guide de démarrage rapide, vous allez créer un exemple de graphique nommé hello-chart.

  1. Accédez au répertoire dans lequel vous souhaitez créer le graphique.
  2. Exécutez la commande suivante pour créer le graphique:

    helm create hello-chart
    

    Helm crée un répertoire nommé hello-chart avec un ensemble de fichiers de graphique par défaut. L'un des fichiers est Chart.yaml, qui inclut des informations sur le graphique.

  3. Empaqueter le graphique d'une archive

    helm package hello-chart/
    

    Helm crée une archive nommée hello-chart-0.1.0.tgz à l'aide du nom du graphique et du numéro de version dans Chart.yaml.

S'authentifier auprès du dépôt

Pour pouvoir transférer ou installer des images, Helm doit s'authentifier auprès d'Artifact Registry. Pour ce guide de démarrage rapide, vous allez vous authentifier avec un jeton d'accès.

Pour en savoir plus sur l'authentification, consultez la page Configurer l'authentification pour Helm.

Pour vous authentifier avec un jeton d'accès, procédez comme suit:

  1. Créez un compte de service pour agir au nom de votre application ou sélectionnez un compte de service existant que vous utilisez pour l'automatisation.

    Vous aurez besoin de l'emplacement du fichier de clé de compte de service pour configurer l'authentification avec Artifact Registry. Pour les comptes existants, vous pouvez afficher les clés et en créer sur la page "Comptes de service".

    Accéder à la page "Comptes de service"

  2. Accordez le rôle Artifact Registry approprié au compte de service afin de fournir l'accès au dépôt.

  3. Attribuez l'emplacement du fichier de clé du compte de service à la variable GOOGLE_APPLICATION_CREDENTIALS afin que l'assistant d'identification Artifact Registry puisse obtenir votre clé lors de la connexion aux dépôts.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    KEY-FILE est le chemin d'accès au fichier de clé du compte de service.

  4. Obtenez un jeton d'accès en tant qu'identifiants lorsque vous vous authentifiez auprès d'Artifact Registry avec Helm.

    Linux/macOS

    Exécutez la commande suivante :

    gcloud auth print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin https://us-central1-docker.pkg.dev
    

    Windows

    Exécutez la commande suivante :

    gcloud auth print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    https://us-central1-docker.pkg.dev/PROJECT-ID/REPOSITORY
    

    Où :

    • oauth2accesstoken est le nom d'utilisateur à utiliser lors de l'authentification avec un jeton d'accès.
    • gcloud auth print-access-token est la commande gcloud permettant d'obtenir le jeton d'accès. Votre jeton d'accès est le mot de passe pour l'authentification.

Helm est désormais authentifié auprès d'Artifact Registry. Vous êtes prêt à envoyer le graphique dans le dépôt.

Transférer le graphique vers Artifact Registry

Une fois le graphique archivé et authentifié auprès du dépôt Artifact Registry, vous pouvez transférer le graphique vers le dépôt.

Pour transférer le graphique, exécutez la commande suivante:

helm push hello-chart-0.1.0.tgz oci://us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo

Remplacez PROJECT par l'ID de votre projet Google Cloud.

Helm utilise les valeurs de Chart.yaml pour l'image:

  • Le nom du graphique est le nom de l'image: hello-chart.
  • La version du graphique est le tag d'image: 0.1.0

Helm renvoie un résultat semblable à l'exemple suivant:

Login Succeeded
Pushed: us-central1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...

Exécutez la commande suivante pour vérifier que le graphique est désormais stocké dans le dépôt:

gcloud artifacts docker images list us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo

Le résultat de la commande ressemble à l'exemple suivant:

Listing items under project my-project, location us-central1, repository quickstart-helm-repo.

IMAGE: us-central1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart
DIGEST: sha256:67a72...
CREATE_TIME: 2021-11-08T22:59:57
UPDATE_TIME: 2021-11-08T22:59:57

Vous pouvez maintenant déployer une version à l'aide du graphique stocké dans Artifact Registry.

Déployer le graphique

Dans Helm, une instance déployée de votre application est appelée une version. Après avoir ajouté votre dépôt à la configuration Helm, vous pouvez déployer une version de votre graphique.

  1. Créez un cluster nommé chart-cluster pour votre déploiement à l'aide de la commande suivante:

    gcloud container clusters create --zone us-central1-a chart-cluster
    

    Une fois le cluster créé, la commande renvoie un résumé semblable à l'exemple suivant:

    kubeconfig entry generated for chart-cluster.
    NAME: chart-cluster
    LOCATION: us-central1-a
    MASTER_VERSION: 1.20.10-gke.1600
    MASTER_IP: 34.66.36.211
    MACHINE_TYPE: e2-medium
    NODE_VERSION: 1.20.10-gke.1600
    NUM_NODES: 3
    STATUS: RUNNING
    
  2. Récupérez les identifiants du cluster afin que kubectl puisse y accéder:

    gcloud container clusters get-credentials --zone us-central1-a chart-cluster
    
  3. Exécutez la commande suivante pour déployer une version de hello-chart à l'aide des fichiers de graphique extraits localement:

    helm install hello-chart oci://us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0
    

    La commande renvoie un résumé du déploiement:

    NAME: hello-chart
    LAST DEPLOYED: Mon Nov  8 23:15:13 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    

Vous avez déployé une version à l'aide du graphique que vous avez créé et transféré vers Artifact Registry.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud :

  1. Supprimez le dépôt que vous avez créé à l'aide de la commande suivante:

    gcloud artifacts repositories delete quickstart-helm-repo --location=us-central1
    
  2. Supprimez le cluster que vous avez créé:

    gcloud container clusters delete --zone=us-central1-a chart-cluster
    

Étape suivante