Introduction
Dans ce laboratoire (lab), vous apprendrez à utiliser les ConfigMaps dans Kubernetes pour configurer vos applications. Les ConfigMaps offrent un moyen de séparer les données de configuration du code de votre application, facilitant ainsi la gestion et la mise à jour de la configuration de votre application sans modifier l'application elle-même.
Démarrer le cluster Minikube
Avant de créer des ressources, vous avez besoin d'un cluster Kubernetes en cours d'exécution. Minikube est un environnement Kubernetes léger qui s'exécute sur votre machine locale.
Accédez à votre répertoire de travail :
Ouvrez le terminal et accédez au dossier de projet par défaut :
cd /home/labex/projectDémarrez Minikube :
Démarrez Minikube pour initialiser un cluster Kubernetes :
minikube start- Cette commande configure un cluster Kubernetes mono - noeud sur votre machine locale.
- Minikube peut prendre quelques minutes à démarrer en fonction des performances de votre système.
Vérifiez que Minikube est en cours d'exécution :
Vérifiez l'état du cluster Minikube :
minikube status- Recherchez des composants tels que
kubeletetapiserverlistés commeRunning(en cours d'exécution). - Si le cluster n'est pas en cours d'exécution, relancez la commande
minikube start.
- Recherchez des composants tels que
Si vous rencontrez des problèmes lors du démarrage de Minikube, utilisez minikube delete pour réinitialiser l'environnement si nécessaire.
Créer un ConfigMap
Dans cette étape, vous allez créer un ConfigMap contenant les données de configuration de votre application.
Créez un fichier nommé configmap.yaml dans le répertoire /home/labex/project/ avec le contenu suivant :
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_URL: postgres://user:password@host:port/dbname
Ce ConfigMap contient une seule paire clé - valeur, où la clé est DATABASE_URL et la valeur est une chaîne de connexion à une base de données PostgreSQL.
Pour créer le ConfigMap, exécutez la commande suivante :
kubectl apply -f configmap.yaml
Utiliser le ConfigMap dans votre application
Dans cette étape, vous allez utiliser le ConfigMap dans votre application.
Créez un fichier nommé deployment.yaml dans le répertoire /home/labex/project/ avec le contenu suivant :
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
env:
- name: DATABASE_URL
valueFrom:
configMapKeyRef:
name: my-config
key: DATABASE_URL
Ce déploiement (deployment) spécifie un seul conteneur exécutant votre application, qui utilise la variable d'environnement DATABASE_URL pour se connecter à une base de données PostgreSQL. La valeur de DATABASE_URL est obtenue à partir du ConfigMap my-config.
Pour créer le déploiement, exécutez la commande suivante :
kubectl apply -f deployment.yaml
Vérifier la configuration
Dans cette étape, vous allez vérifier que la configuration a été appliquée à votre application.
Tout d'abord, trouvez le nom du pod (conteneur logique dans Kubernetes) exécutant votre application en exécutant la commande suivante :
kubectl get pods -l app=my-app
Vous devriez voir un seul pod exécutant votre application. Notez le nom du pod.
Ensuite, exécutez la commande suivante pour ouvrir une session shell dans le conteneur exécutant votre application :
kubectl exec -it pod-name -- /bin/sh
Remplacez <pod-name> par le nom du pod que vous avez noté précédemment.
Une fois que vous êtes dans la session shell, exécutez la commande suivante pour afficher la valeur de la variable d'environnement DATABASE_URL :
echo $DATABASE_URL
Vous devriez voir la chaîne de connexion à la base de données que vous avez définie dans le ConfigMap.
Mettre à jour le ConfigMap
Dans cette étape, vous allez mettre à jour le ConfigMap et voir comment cela affecte votre application.
Mettez à jour le fichier configmap.yaml avec une nouvelle valeur pour la clé DATABASE_URL :
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_URL: postgres://newuser:newpassword@newhost:newport/newdbname
Cela met à jour la clé DATABASE_URL avec une nouvelle valeur.
Pour mettre à jour le ConfigMap, exécutez la commande suivante :
kubectl apply -f configmap.yaml
Vérifier la mise à jour
Dans cette étape, vous allez vérifier que la mise à jour du ConfigMap a été appliquée à votre application.
Tout d'abord, trouvez le nom du pod (conteneur logique dans Kubernetes) exécutant votre application en exécutant la commande suivante :
kubectl get pods -l app=my-app
Vous devriez voir un seul pod exécutant votre application. Notez le nom du pod.
Ensuite, exécutez la commande suivante pour ouvrir une session shell dans le conteneur exécutant votre application :
kubectl exec -it pod-name -- /bin/sh
Remplacez <pod-name> par le nom du pod que vous avez noté précédemment.
Une fois que vous êtes dans la session shell, exécutez la commande suivante pour afficher la valeur de la variable d'environnement DATABASE_URL :
echo $DATABASE_URL
Vous pouvez constater que la configuration n'a pas pris effet, il s'agit toujours des mêmes données qu'avant. Vous devez redémarrer le déploiement (Deployment) avec la commande suivante.
kubectl rollout restart deployment my-app
Une fois le redémarrage terminé, accédez de nouveau à l'intérieur du conteneur et utilisez la commande ci-dessus pour vérifier la configuration.
Vous devriez voir la chaîne de connexion à la base de données mise à jour.
Résumé
Dans ce laboratoire (lab), vous avez appris à utiliser les ConfigMaps dans Kubernetes pour configurer vos applications. Vous avez créé un ConfigMap contenant des données de configuration, utilisé le ConfigMap dans votre application et mis à jour le ConfigMap pour voir comment cela affecte votre application. Vous avez également appris à vérifier que la configuration a été appliquée à votre application et à nettoyer les ressources créées dans le laboratoire.


