Base de connaissances

Déploiement Kubernetes avec les graphiques Helm et les ressources personnalisées

Kubernetes est devenu le standard de facto pour l'orchestration des conteneurs, facilitant la gestion, l'extension et le déploiement des applications conteneurisées. Cependant, à mesure que les clusters Kubernetes deviennent plus complexes, la gestion des déploiements en utilisant uniquement des manifests YAML peut devenir encombrante. Helm, le gestionnaire de paquets de Kubernetes, simplifie le déploiement, la gestion et la restauration des applications en permettant aux développeurs de regrouper les manifests Kubernetes dans des paquets versionnés appelés charts. Les ressources personnalisées (CR) étendent, quant à elles, l'API de Kubernetes, offrant un moyen de définir et de gérer de nouveaux types d'objets.

Déploiement Kubernetes avec les Helm Charts et les ressources personnalisées

Kubernetes est devenu le standard de facto pour l'orchestration des conteneurs, facilitant la gestion, l'extension et le déploiement des applications conteneurisées. Cependant, à mesure que les clusters Kubernetes deviennent plus complexes, la gestion des déploiements en utilisant uniquement des manifests YAML peut devenir encombrante. Helm, le gestionnaire de paquets de Kubernetes, simplifie le déploiement, la gestion et la restauration des applications en permettant aux développeurs de regrouper les manifests Kubernetes dans des paquets versionnés appelés charts. Les ressources personnalisées (CR) étendent, quant à elles, l'API de Kubernetes, offrant un moyen de définir et de gérer de nouveaux types d'objets.

Cet article explore comment déployer des applications sur Kubernetes en utilisant des Helm charts et des ressources personnalisées, en mettant en évidence les avantages des deux méthodes. Nous aborderons les sujets suivants :

  1. Introduction à Helm et aux ressources personnalisées
  2. Configuration d'un cluster Kubernetes
  3. Bases de Helm : Installation de Helm et création de charts
  4. Gestion des applications Kubernetes avec des Helm charts
  5. Création et gestion des ressources personnalisées dans Kubernetes
  6. Combinaison des Helm charts et des ressources personnalisées pour des déploiements flexibles

Qu'est-ce que Helm ?

Helm est un gestionnaire de paquets pour Kubernetes qui simplifie le processus de définition, d'installation et de mise à jour des applications Kubernetes. Il utilise des modèles préconfigurés (appelés charts) pour déployer des applications et gérer leur cycle de vie, permettant aux développeurs de :

  • Packager les ressources Kubernetes dans une seule unité (un chart Helm).
  • Installer et mettre à jour les applications facilement.
  • Revenir en arrière facilement.
  • Réutiliser les charts pour différents environnements en modifiant les valeurs.

Helm repose sur trois concepts principaux :

  1. Charts : Collections de fichiers qui décrivent les ressources Kubernetes.
  2. Release : Une instance d'un chart Helm en cours d'exécution dans un cluster Kubernetes.
  3. Repositories : Lieux où les charts sont stockés et partagés.

Qu'est-ce que les ressources personnalisées Kubernetes ?

Les ressources personnalisées Kubernetes (CR) sont des types d'objets définis par l'utilisateur qui étendent les fonctionnalités de Kubernetes. Les ressources personnalisées permettent aux développeurs de définir des objets personnalisés et de les utiliser comme des ressources natives de Kubernetes. Par exemple, bien que Kubernetes fournisse des objets intégrés comme les Pods, les Deployments et les Services, une ressource personnalisée peut définir des choses allant de la configuration des bases de données aux règles de surveillance.

Les ressources personnalisées sont associées à des définitions de ressources personnalisées (CRD), qui servent de schéma pour la CR. En utilisant les CRD, les développeurs peuvent créer de nouveaux objets API Kubernetes qui fonctionnent de la même manière que les objets intégrés. Les ressources personnalisées peuvent être couplées à des contrôleurs qui surveillent ces ressources et prennent des actions, automatisant ainsi des flux de travail complexes.

Configuration d'un cluster Kubernetes

Avant de déployer des applications en utilisant Helm et les ressources personnalisées, nous avons besoin d'un environnement Kubernetes. Voici les étapes pour configurer un cluster Kubernetes local avec Minikube.

Installation de Minikube

Minikube est un outil léger pour exécuter des clusters Kubernetes localement. Installez Minikube en fonction de votre système d'exploitation :

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Démarrage de Minikube

Démarrez Minikube et créez un cluster Kubernetes local :

minikube start

Vérification de l'installation de Kubernetes

Vérifiez l'état du cluster en utilisant kubectl, l'outil en ligne de commande Kubernetes :

kubectl cluster-info
kubectl get nodes

Installation de Helm

Helm nécessite un cluster Kubernetes en fonctionnement. Installez Helm sur votre machine locale et configurez-le pour se connecter à votre cluster :

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

Bases de Helm : Installation de Helm et création de charts

Avec le cluster Kubernetes en cours d'exécution, nous pouvons explorer les fonctionnalités de Helm en créant et en déployant des charts.

Structure d'un chart Helm

Les charts Helm suivent une structure spécifique qui organise tous les fichiers de manifest Kubernetes dans un format réutilisable.

Création d'un chart Helm

Exécutez la commande suivante pour créer un nouveau chart Helm :

helm create mychart

Cette commande génère la structure de répertoires décrite ci-dessus. Modifiez le répertoire templates/ pour inclure vos définitions de ressources Kubernetes.

Déploiement d'une application avec Helm

Pour déployer une application en utilisant Helm, suivez ces étapes :

  1. Packagez le chart :
helm package mychart

Cette commande déploie le chart Helm et crée une nouvelle release (myrelease).

Personnalisation des déploiements avec des valeurs

Le fichier values.yaml permet une configuration flexible de votre chart Helm. Par exemple, modifiez les limites des ressources, les variables d'environnement ou les versions d'image en modifiant simplement les valeurs dans ce fichier.

Vous pouvez également remplacer values.yaml lors de l'exécution en passant des valeurs via la ligne de commande :

helm install myrelease ./mychart --set image.tag=2.0

Gestion des applications Kubernetes avec les Helm charts

Helm simplifie les applications Kubernetes complexes en les modélisant et en les réutilisant. Ci-dessous, nous explorons quelques cas d'utilisation avancés de Helm.

Mise à jour des applications

Pour mettre à jour la configuration d'une application, modifiez le chart ou ses valeurs et utilisez la commande suivante :

helm upgrade myrelease ./mychart

Helm met à jour l'application tout en suivant la nouvelle version.

Retour en arrière des modifications

Si une mise à jour pose des problèmes, Helm peut revenir à une version précédente :

helm rollback release 1

Utilisation des repositories Helm

Vous pouvez partager des charts Helm en les envoyant vers des repositories Helm. Pour utiliser un chart depuis un repository public :

helm repo add stable https://charts.helm.sh/stable
helm install stable/MySQL

Création et gestion des ressources personnalisées dans Kubernetes

Bien que Helm soit excellent pour gérer les ressources Kubernetes traditionnelles, les ressources personnalisées offrent plus de flexibilité pour des cas d'utilisation complexes. Voici comment définir, créer et gérer des ressources personnalisées dans Kubernetes.

Création de ressources personnalisées

Une fois le CRD en place, vous pouvez créer des instances de la ressource personnalisée :

apiVersion: example.com/v1
kind: Database
metadata:
  name: my-database
spec:
  engine: Postgres
  version: 12.3

Gestion des ressources personnalisées

Les ressources personnalisées se comportent comme n'importe quel autre objet Kubernetes. Vous pouvez les lister, les décrire et les supprimer à l'aide des commandes standard kubectl :

kubectl get databases
kubectl describe database my-database
kubectl delete database my-database

Combinaison des Helm Charts et des ressources personnalisées pour des déploiements flexibles

Les Helm charts et les ressources personnalisées peuvent être combinés pour créer des déploiements hautement flexibles et réutilisables. Un cas d'utilisation courant est l'intégration des CRD dans les charts Helm pour améliorer l'extensibilité des applications.

Création de modèles Helm pour des ressources personnalisées

Vous pouvez également inclure des définitions de ressources personnalisées dans les modèles de chart Helm. Cela vous permet d'utiliser des valeurs et de créer conditionnellement des ressources personnalisées en fonction des options de configuration :

apiVersion: {{ .Values.card.apiVersion }}
kind: Database
metadata:
  name: {{ .Release.Name }}
spec:
  engine: {{ .Values.database.engine }}
  version: {{ .Values.database.version }}

Déploiement avec Helm

Enfin, déployez le chart qui inclut à la fois les ressources Kubernetes traditionnelles et les ressources personnalisées :

helm install myrelease ./mychart

Helm gère l'ensemble de la pile d'application, y compris les définitions des ressources personnalisées et leurs instances. Les Helm charts et les ressources personnalisées offrent des outils puissants pour gérer les applications Kubernetes. Helm simplifie le processus d'emballage, de déploiement et de mise à jour des applications, tandis que les ressources personnalisées étendent les capacités de Kubernetes, permettant de définir vos API. En combinant ces deux outils, les développeurs peuvent créer des déploiements hautement flexibles et réutilisables.

  • 0 Utilisateurs l'ont trouvée utile
Cette réponse était-elle pertinente?