Content slides
Introduction¶
Helm est un gestionnaire de packages pour Kubernetes.
Il facilite le déploiement et la gestion des applications complexes via des charts.
Avantages - Simplifie les déploiements multi-environnements. - Gère les dépendances entre applications. - Permet des mises à jour et rollbacks.
Concepts clés¶
- Chart : Structure définissant une application (manifests YAML, templates).
- Release : Instance d’un chart déployée dans un cluster.
- Repository : Source où les charts sont stockés.
Commandes essentielles¶
Créer un chart :
Installer une application :
Lister les releases :
Mettre à jour un release :
Supprimer un release :
Structure d’un Chart¶
my-chart/
Chart.yaml # Métadonnées du chart
values.yaml # Valeurs par défaut pour les variables
├── templates/ # Fichiers de template YAML
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ....yaml
Fichiers détaillés - Chart.yaml¶
Fichier contenant les métadonnées du chart.
apiVersion: v2
name: my-nginx-chart
description: A simple Helm chart for NGINX
type: application
version: 0.1.0
appVersion: "1.21.1"
Fichiers détaillés - Values.yaml¶
Fichier de configuration contenant les valeurs par défaut.
replicaCount: 2
image:
repository: nginx
tag: "1.21.1"
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
resources: {}
Fichiers détaillés - Deployment.yaml¶
Déploiement d’un pod NGINX avec des réplicas.
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ .Release.Name }}
spec:
containers:
- name: nginx
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: 80