Objectif : Déployer une application Node.js avec MongoDB sur un cluster Kubernetes en utilisant Minikube.
Prérequis :
Docker
Minikube
Kubernetes CLI (kubectl)
Étape 1 : Installer Minikube
Minikube permet de déployer Kubernetes localement, ce qui est idéal pour tester des déploiements en environnement de développement.
Pour installer Minikube, suivez la documentation officielle : Installation de Minikube.
Démarrez Minikube avec la commande suivante :
minikube start
Cela créera un cluster Kubernetes local sur votre machine.
Étape 2 : Créer un fichier deployment.yaml
Nous allons créer un fichier deployment.yaml
pour déployer une application Node.js et une base de données MongoDB. Ce fichier va définir les ressources Kubernetes nécessaires pour déployer ces composants.
Créez un fichier deployment.yaml
avec le contenu suivant :
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodejs-app-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nodejs-app
template:
metadata:
labels:
app: nodejs-app
spec:
containers:
- name: nodejs-app
image: your_dockerhub_username/nodejs-app:latest # Remplacez par votre image Docker
ports:
- containerPort: 3000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo:latest
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-data
mountPath: /data/db
volumes:
- name: mongo-data
emptyDir: {}
Explication :
Ce fichier
deployment.yaml
crée deux déploiements : un pour l’application Node.js et un autre pour MongoDB.Le déploiement MongoDB utilise un volume
emptyDir
pour stocker les données temporairement.
Étape 3 : Appliquer la configuration Kubernetes
Pour appliquer la configuration et déployer l’application et la base de données sur votre cluster, exécutez la commande suivante :
kubectl apply -f deployment.yaml
Cette commande va créer les déploiements et les pods correspondants sur votre cluster Kubernetes local.
Étape 4 : Exposer l’application à l’aide d’un service LoadBalancer
Pour que votre application soit accessible, vous devez créer un service LoadBalancer. Créez un fichier service.yaml
avec le contenu suivant :
apiVersion: v1
kind: Service
metadata:
name: nodejs-app-service
spec:
type: LoadBalancer
selector:
app: nodejs-app
ports:
- protocol: TCP
port: 3000
targetPort: 3000
Appliquez le service en utilisant la commande suivante :
kubectl apply -f service.yaml
Pour obtenir l’URL du service, utilisez la commande suivante :
minikube service nodejs-app-service --url
Cela vous fournira une URL que vous pouvez utiliser pour accéder à l’application Node.js déployée.
Étape 5 : Vérification
Pour vérifier que vos pods sont bien en cours d’exécution, utilisez la commande suivante :
kubectl get pods
Vous devriez voir les pods de votre application Node.js et MongoDB en cours d’exécution.
Conclusion : Vous avez déployé avec succès une application Node.js avec une base de données MongoDB sur un cluster Kubernetes local en utilisant Minikube. Vous avez utilisé des déploiements pour définir les ressources et un service pour exposer votre application à l’externe.
Suggestions pour aller plus loin :
Créer un volume persistant pour MongoDB au lieu d’un volume
emptyDir
.Ajouter un fichier
ConfigMap
pour gérer la configuration de l’application.Explorer l’autoscaling des pods en fonction de la charge de travail.