Cette page a été traduite par l'API Cloud Translation.
Switch to English

Guide de démarrage rapide pour Helm

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

Helm 3 est compatible avec les graphiques enregistrés sous la forme d'images de conteneurs OCI. Artifact Registry est compatible avec les images de conteneurs au format OCI. Vous pouvez donc stocker des graphiques Helm dans un dépôt Docker Artifact Registry.

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 avec le dépôt
  • Transférer le graphique vers le dépôt
  • Extraire le graphique du dépôt
  • Déployer le graphique

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

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

    Accéder à la page de sélection du 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

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.

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. Installez Helm 3 si ce n'est pas déjà fait.

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

    export HELM_EXPERIMENTAL_OCI=1
    
  4. Exécutez la commande suivante pour charger votre fichier .bashrc (ou .bash_profile) mis à jour:

    source ~/.bashrc
    

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 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 Docker comme format.

  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

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 par défaut de fichiers graphiques.

  3. Enregistrez le graphique en tant qu'image OCI en utilisant le chemin d'accès complet à l'emplacement de l'image dans le dépôt que vous avez créé.

    helm chart save hello-chart us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart
    

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

    La commande renvoie des informations sur l'image.

    ref:     us-central1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
    digest:  decd0b41c389fd46c586c292eaf05f446fe05dc56248f409bef2c123ab7b7032
    size:    3.5 KiB
    name:    hello-chart
    version: 0.1.0
    0.1.0: saved
    

    Notez que Helm ajoute le tag 0.1.0 à votre image, le numéro de version du graphique par défaut dans votre fichier hello-chart/Chart.yaml. La mise à jour de ce numéro de version chaque fois que vous apportez des modifications à un graphique est un moyen utile de synchroniser les métadonnées de Chart.yaml avec vos tags d'image de conteneur.

  4. Affichez la liste des graphiques dans votre cache local.

    helm chart list
    

    La liste inclut le graphique enregistré.

    REF                                                             NAME            VERSION DIGEST  SIZE    CREATED
    us-central1-docker.pkg.dev/my-project/quickstart-helm-repo...   hello-chart     0.1.0   decd0b4 3.5 KiB 2 minutes
    

S'authentifier avec le dépôt

Avant de pouvoir stocker ou installer des images, Helm doit s'authentifier auprès de Artifact Registry.

Si vous avez configuré Docker avec un assistant d'identification pour vous authentifier avec Artifact Registry, vous pouvez configurer Helm pour utiliser vos paramètres de registre Docker existants. Sinon, vous pouvez vous authentifier auprès du dépôt à l'aide d'un jeton d'accès pour ce guide de démarrage rapide.

Consultez la page Configurer l'authentification pour Helm pour en savoir plus sur l'authentification.

S'authentifier auprès de votre configuration Docker

Pour configurer Helm afin d'utiliser les paramètres de votre registre Docker:

Linux

  1. Ajoutez les lignes suivantes à ~/.bashrc (ou ~/.bash_profile sous macOS, ou à l'emplacement où votre interface système stocke les variables d'environnement):

    export DOCKER_CONFIG="~/.docker"
    export HELM_REGISTRY_CONFIG="${DOCKER_CONFIG}/config.json"
    
    • DOCKER_CONFIG correspond à la variable d'environnement Docker pour l'emplacement du fichier de configuration du client Docker, config.json. L'emplacement par défaut est ~/.docker.
    • HELM_REGISTRY_CONFIG est la variable d'environnement Helm du fichier de configuration du registre. Il pointe vers le fichier Docker config.json.
  2. Exécutez la commande suivante pour charger votre fichier .bashrc (ou .bash_profile) mis à jour:

    source ~/.bashrc
    

Windows

Exécutez les commandes suivantes pour configurer les variables d'environnement utilisateur pour les fichiers de configuration Docker et Helm:

setx DOCKER_CONFIG %USERPROFILE%\.docker
setx HELM_REGISTRY_CONFIG %DOCKER_CONFIG%\config.json
  • DOCKER_CONFIG correspond à la variable d'environnement Docker pour l'emplacement du fichier de configuration du client Docker, config.json. L'emplacement par défaut est %USERPROFILE%\.docker.
  • HELM_REGISTRY_CONFIG est la variable d'environnement Helm du fichier de configuration du registre. Il pointe vers le fichier Docker config.json.

Helm est maintenant configuré pour s'authentifier à l'aide des identifiants configurés pour votre client Docker. Vous êtes prêtpush le graphique dans le dépôt.

S'authentifier avec un jeton

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

  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 connectez à 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 pour s'authentifier 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é avec Artifact Registry. Vous êtes prêt à transférer le graphique vers le dépôt.

Transférer le graphique vers Artifact Registry

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

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

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

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

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-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo

Extraire le graphique du dépôt

Vous ne pouvez pas utiliser un graphique directement depuis Artifact Registry. Pour utiliser le graphique que vous avez stocké en tant qu'image OCI, vous devez extraire l'image, extraire les fichiers de graphique, puis utiliser les fichiers extraits pour effectuer le déploiement.

Actuellement, votre graphique est déjà stocké en local dans le répertoire hello-chart et dans l'image de conteneur que vous avez enregistrée localement. Dans cette section, vous allez supprimer les copies locales du graphique pour pouvoir l'extraire du dépôt d'artefacts dans un environnement local propre.

  1. Supprimez l'image de conteneur enregistrée localement à l'aide de la commande suivante:

    helm chart remove us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart:0.1.0
    
  2. Supprimer le répertoire local avec les fichiers de graphique

    rm -rf ./hello-chart
    
  3. Extraire l'image du graphique depuis Artifact Registry.

    helm chart pull us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart:0.1.0
    
  4. Extrayez votre graphique de l'image vers le répertoire hello-chart.

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

Déployer le graphique

Dans Helm, une instance déployée de votre application s'appelle une version. Une fois le dépôt ajouté à la configuration de 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éé, un résumé semblable au suivant s'affiche:

    NAME           LOCATION       MASTER_VERSION    MASTER_IP    MACHINE_TYPE   NODE_VERSION      NUM_NODES  STATUS
    chart-cluster  us-central1-a  1.16.15-gke.4901  34.68.170.9  n1-standard-1  1.16.15-gke.4901  3          RUNNING
    
  2. Obtenez les identifiants du cluster afin que kubectl puisse accéder au cluster:

    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 graphiques extraits locaux:

    helm install hello-chart ./hello-chart
    

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

    NAME: hello-chart
    LAST DEPLOYED: Tue Jan 12 21:12:02 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    

Nettoyer

Pour éviter que les ressources utilisées dans ce guide démarrage rapide 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