Déploiement d’une application sur Google Kubernetes Engine à l’aide de graphiques Helm

Dans ce blog, vous apprendrez comment déployer une application node.js dans Kubernetes Engine à l'aide de chartes Helm.
5 minutes de lecture
Thummala Hareesh
Thummala Hareesh
Ingénieur technique
5 minutes de lecture

Introduction

Dans ce blogue, vous apprendrez comment déployer une application node.js dans le moteur Kubernetes à l’aide de Helm charts. Avant les charts Helm, les utilisateurs devaient exécuter les fichiers YAML comme deployment.yaml, service.yaml, ingress.yaml et dns.yaml individuellement. Maintenant, nous pouvons exécuter tous les fichiers ensemble grâce au Helm Chart, avec une seule commande. Cela nous permet d’économiser beaucoup de temps et de réutiliser ce chart dans plusieurs environnements.

Prérequis :

  1. Compte gratuit GCP
  2. Créer un projet Google Cloud Platform (GCP) ou en utiliser un existant.
  3. Activer les API suivantes
    1. API Kubernetes Engine.
    2. API du registre de conteneurs.
  4. Notions de base sur Kubernetes et Helm

Helm Chart

Helm est un installateur de paquets basé sur Kubernetes. Il gère les « Charts » Kubernetes, qui sont des paquets préconfigurés de ressources Kubernetes. Helm vous permet d’installer facilement des paquets et d’effectuer des révisions.

Google Kubernetes Engine(GKE)

Google Kubernetes Engine(GKE) sert à gérer les conteneurs, notamment à démarrer, exécuter et déployer les conteneurs manuellement. Il est très difficile pour nous de faire l’automatisation à travers le Google Kubernetes Engine.

Container Registry

Container Registry est un service de Google Cloud et il sert à stocker les images de conteneurs.

Installation de Helm

  1. Allez à la console GCP.
  2. Cliquez sur l’icône Cloud Shell Distorsion
  3. Pour télécharger la version la plus récente, utilisez la commande wget
    wget https://get.helm.sh/helm-v3.9.3-linux-amd64.tar.gz
  4. À l’aide de la commande tar, décompressez les fichiers .gz.
    tar xvf helm-v3.9.3-linux-amd64.tar.gz
  5. Déplacez le fichier linux-amd64/helm dans le répertoire /usr/local/bin :
    sudo mv linux-amd64/helm /usr/local/bin
  6. Pour vérifier la version de Helm, utilisez la commande suivante
    helm version

Créer un cluster Kubernetes et se connecter au Cloud Shell

À cette étape, nous devons déployer notre application à l’aide des Helm charts. Ainsi, il prend en charge le moteur Kubernetes, puis crée un cluster pour utiliser le Cloud Shell (ou) la console.

Type 1 : Utilisation de Cloud Shell

  1. Définir votre région
    gcloud config set compute/region REGION
  2. Créer un nom de cluster my-app
    gcloud container clusters create-auto my-app

Type 2 : utilisation de la console GCP

  1. Accédez à la section Kubernetes Engine dans la console GCP.
  2. Cliquez ensuite sur « Créer un cluster ».
  3. Entrez le nom my-app
  4. Cliquez sur Créer.

Distorsion

Une fois le cluster créé, utilisez la commande ci-dessous pour connecter le cluster dans Cloud Shell
gcloud container clusters get-credentials my-app –zone us-central1-c

Distorsion

Créer une application :

Nous avons besoin d’une application à déployer sur notre cluster. Nous allons créer une application Node.JS simple dans cette section.

Ouvrez le Shell Distorsion ici ; nous allons créer un répertoire pour notre appli en utilisant les commandes ci-dessous
mkdir my-app && cd my_app

Créez maintenant les fichiers suivants dans le répertoire my-app :

Fichier server.js pour stocker le code de notre appli :

Distorsion

Fichier package.json pour stocker les métadonnées de notre appli et de ses dépendances :

Distorsion

Fichier Dockerfile pour décrire l’image docker de notre application :

Distorsion

Nous avons maintenant trois fichiers dans le répertoire `my_app`

  1. Server.js
  2. Package.json
  3. Dockerfile

Construire l’image Docker :

Maintenant pour créer l’image Docker, utilisez la commande « build » ci-dessous :

docker build –t IMAGE_NAME

maintenant vérifiez les images en utilisant la commande ci-dessous

docker images

Pousser l’image Docker dans le registre de conteneurs :

nous devons maintenant pousser l’image dans le registre de conteneurs à l’aide des commandes ci-dessous

docker tag IMAGE_NAME gcr.io/PROJECT_ID/IMAGE_NAME

docker push gcr.io/PROJECT_ID/IMAGE_NAME

vous pouvez maintenant vérifier les images dans le registre de conteneur

  1. Cliquez sur la barre de menu de gauche, faites défiler vers le bas
  2. Cliquez sur Container Registry.

Distorsion

Créer un Helm Chart

Helm nous permet de modéliser nos fichiers manifestes de ressources Kubernetes. Un chart Helm standard a la structure suivante :

Distorsion

  1. Templates : Le dossier Templates comporte plusieurs fichiers yaml comme deployment.yaml, service.yaml, ingress.yaml, secret.yaml et dns.yaml pour le déploiement de l’application. Ils recevront toutes leurs valeurs à partir du values.yaml ci-dessus.
  2. Chart.yaml : Toutes les informations concernant le chart à empaqueter s’y trouvent. Ici, nous devons indiquer le nom et la version de notre chart.
  3. Values.yaml : Ce fichier peut être modifié pour personnaliser la configuration d’un chart, ou les valeurs peuvent être transmises en tant qu’arguments pendant l’installation du chart.
  4. Charts : Si votre chart dépend d’autres charts, c’est ici que vous les stockez. Vous appellerez un autre chart pour le bon fonctionnement du vôtre.

deployment.yaml

Distorsion

Service.yaml

Distorsion

Chart.yaml

Distorsion

Values.yaml

Distorsion

Déployer le Helm chart

Le Helm chart est maintenant prêt à être déployé une fois que nous avons exécuté cette commande helm install my-app. Notre application node.js sera déployée sur le GKE.

Distorsion

Maintenant que notre application est déployée, vous pouvez vérifier le statut dans la capture d’écran ci-dessus, et vous pouvez le confirmer en naviguant dans la console pour vérification.

Console🡪Kubernetes Engine->Workloads

Distorsion

Console🡪Kubernetes Engine->Service&ingress

Distorsion

Nous avons ici l’IP publique du Load Balancer ; maintenant, nous allons voir le résultat.

Résultat

Vous pouvez maintenant utiliser la commande curl ou tout simplement ouvrir votre navigateur pour vérifier le résultat. Vous devriez voir un joli « Hello World » :

Distorsion

Finalement, nous avons déployé notre application Node.js dans Google Kubernetes Engine grâce à la méthode des Helm Charts.

En utilisant cette méthode Helm chart, nous pouvons facilement déployer nos applications dans plusieurs environnements

  1. L’équipe DevOps, une fois le chart helm créé, peut l’utiliser pour plusieurs environnements comme le développement, les tests et la production, etc.
  2. Le chart Helm permet de modifier facilement les valeurs par défaut dans le fichier values.yaml
  3. Selon les besoins, les utilisateurs et les développeurs peuvent faire des modifications lors de l’installation des charts helm

Références :

  1. Helm : Présentation de Helm
  2. Google Kubernetes Engine : Google Kubernetes Engine (GKE) | Google Cloud
  3. Container Registry : Container Registry | Google Cloud
  4. Compte gratuit Free Tier : Compte Google Cloud Platform gratuit | Étapes de création d’un compte Google Cloud gratuit
Etiquettes
Partager sur
ERS Génie Blogues Déploiement d’une application sur Google Kubernetes Engine à l’aide de graphiques Helm