Stocker des charts Helm dans Artifact Registry

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

Ce guide de démarrage rapide vous montre comment :

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

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Google Kubernetes Engine APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry, Google Kubernetes Engine APIs.

    Enable the APIs

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 la Google Cloud CLI, l'interface de ligne de commande principale de Google Cloud.
Interface système locale
Si vous préférez utiliser votre interface système locale, vous devez installer Docker et la gcloud CLI 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. Installez Helm 3.8.0 ou version ultérieure. Dans les versions précédentes de Helm, les graphiques au format OCI fonctionnalité expérimentale.

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

Configurer une interface système locale

Pour installer la gcloud CLI et Helm, procédez comme suit:

  1. Installez la CLI gcloud. Pour mettre à jour l'installation, exécutez la commande gcloud components update.

  2. Installez Helm 3.8.0 ou une version ultérieure. Dans les versions précédentes de Helm, la prise en charge des graphiques au format OCI est une fonctionnalité expérimentale.

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

Créer un dépôt

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

Console

  1. Ouvrez la page Dépôts de la console Google Cloud.

    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-west1.

  6. Cliquez sur 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-west1 avec la description "dépôt Docker".

    gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
    --location=us-west1 --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 obtenir plus d'informations sur les commandes Artifact Registry.

Créer un graphique

Dans 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 charts par défaut . L'un des fichiers est Chart.yaml, qui inclut des informations sur le graphique.

  3. Emballez le graphique dans 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 avec le dépôt

Avant de pouvoir transférer ou installer des images, Helm doit s'authentifier auprès d'Artifact Registry.

Helm peut utiliser les paramètres de registre existants dans un fichier de configuration Docker. Si vous n'avez pas encore configuré Docker pour l'utiliser avec Artifact Registry, vous pouvez vous authentifier avec un jeton d'accès pour ce guide de démarrage rapide.

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

S'authentifier avec votre configuration Docker

Par défaut, Helm prend en charge les paramètres de registre dans le fichier de configuration Docker config.json. Helm trouve les paramètres de registre soit l'emplacement par défaut, soit l'emplacement spécifié par la DOCKER_CONFIG.

Si vous avez configuré Docker avec un outil d'aide à la connexion pour s'authentifier auprès d'Artifact Registry, de Helm utilise votre configuration existante pour les dépôts Docker Artifact Registry.

S'authentifier avec un jeton d'accès

Pour s'authentifier avec un jeton d'accès:

  1. Obtenez un jeton d'accès en tant qu'identifiant 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-west1-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-west1-docker.pkg.dev/PROJECT-ID/REPOSITORY
    

    Où :

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

Helm est désormais authentifié avec Artifact Registry. Vous êtes prêt à Transférez le graphique vers le dépôt.

Transférer le graphique vers Artifact Registry

Une fois que vous avez créé votre archive de graphiques et que vous vous êtes 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-west1-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 la balise d'image : 0.1.0

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

Login Succeeded
Pushed: us-west1-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 maintenant stocké dans le dépôt :

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

Le résultat de la commande ressemble à ceci :

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

IMAGE: us-west1-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 version. Après que vous avez ajouté votre dépôt à la configuration Helm, vous pouvez déployer publication 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-west1-a chart-cluster
    

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

    kubeconfig entry generated for chart-cluster.
    NAME: chart-cluster
    LOCATION: us-west1-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. Obtenez les identifiants du cluster afin que kubectl puisse y accéder :

    gcloud container clusters get-credentials --zone us-west1-a chart-cluster
    
  3. Exécutez la commande suivante pour déployer une version de hello-chart en utilisant les fichiers du graphique extraits localement:

    helm install hello-chart oci://us-west1-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éé. transférées vers Artifact Registry.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :

  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-west1
    
  2. Supprimez le cluster que vous avez créé :

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

Étape suivante