Testez votre déploiement React.js
Prérequis
Avant de commencer, assurez-vous d'avoir terminé les étapes suivantes :
- Terminez toutes les sections précédentes de ce guide, en commençant par Conteneuriser une application React.js.
- Activez Kubernetes dans Docker Desktop.
Nouveau sur Kubernetes ? Consultez le tutoriel sur les bases de Kubernetes pour vous familiariser avec le fonctionnement des clusters, pods, déploiements et services.
Aperçu
Cette section vous guide dans le déploiement local de votre application React.js conteneurisée en utilisant le Kubernetes intégré de Docker Desktop. Exécuter votre application dans un cluster Kubernetes local vous permet de simuler de près un environnement de production réel, vous permettant de tester, valider et déboguer vos charges de travail avec confiance avant de les promouvoir en pré-production ou en production.
Créer un fichier YAML Kubernetes
Suivez ces étapes pour définir votre configuration de déploiement :
-
À la racine de votre projet, créez un nouveau fichier nommé :
reactjs-sample-kubernetes.yaml
-
Ouvrez le fichier dans votre IDE ou votre éditeur de texte préféré.
-
Ajoutez la configuration suivante, et assurez-vous de remplacer
{DOCKER_USERNAME}
et{DOCKERHUB_PROJECT_NAME}
par votre nom d'utilisateur Docker Hub et le nom de votre dépôt réels de la section précédente Automatisez vos constructions avec GitHub Actions.
apiVersion: apps/v1
kind: Deployment
metadata:
name: reactjs-sample
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: reactjs-sample
template:
metadata:
labels:
app: reactjs-sample
spec:
containers:
- name: reactjs-container
image: {DOCKER_USERNAME}/{DOCKERHUB_PROJECT_NAME}:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: reactjs-sample-service
namespace: default
spec:
type: NodePort
selector:
app: reactjs-sample
ports:
- port: 8080
targetPort: 8080
nodePort: 30001
Ce manifeste définit deux ressources Kubernetes clés, séparées par ---
:
-
Déploiement Déploie une seule réplique de votre application React.js à l'intérieur d'un pod. Le pod utilise l'image Docker construite et poussée par votre flux de travail CI/CD GitHub Actions (référez-vous à Automatisez vos constructions avec GitHub Actions). Le conteneur écoute sur le port
8080
, qui est généralement utilisé par Nginx pour servir votre application React de production. -
Service (NodePort) Expose le pod déployé à votre machine locale. Il redirige le trafic du port
30001
sur votre hôte vers le port8080
à l'intérieur du conteneur. Cela vous permet d'accéder à l'application dans votre navigateur à l'adresse http://localhost:30001.
NotePour en savoir plus sur les objets Kubernetes, consultez la documentation Kubernetes.
Déployer et vérifier votre application
Suivez ces étapes pour déployer votre application React.js conteneurisée dans un cluster Kubernetes local et vérifier qu'elle fonctionne correctement.
Étape 1. Appliquer la configuration Kubernetes
Dans votre terminal, naviguez vers le répertoire où se trouve votre fichier reactjs-sample-kubernetes.yaml
, puis déployez les ressources en utilisant :
$ kubectl apply -f reactjs-sample-kubernetes.yaml
Si tout est configuré correctement, vous verrez une confirmation que le Déploiement et le Service ont été créés :
deployment.apps/reactjs-sample created
service/reactjs-sample-service created
Cette sortie signifie que le Déploiement et le Service ont été créés avec succès et s'exécutent maintenant dans votre cluster local.
Étape 2. Vérifier l'état du Déploiement
Exécutez la commande suivante pour vérifier l'état de votre déploiement :
$ kubectl get deployments
Vous devriez voir une sortie similaire à :
NAME READY UP-TO-DATE AVAILABLE AGE
reactjs-sample 1/1 1 1 14s
Cela confirme que votre pod est opérationnel avec une réplique disponible.
Étape 3. Vérifier l'exposition du Service
Vérifiez si le service NodePort expose votre application à votre machine locale :
$ kubectl get services
Vous devriez voir quelque chose comme :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
reactjs-sample-service NodePort 10.100.244.65 <none> 8080:30001/TCP 1m
Cette sortie confirme que votre application est disponible via NodePort sur le port 30001.
Étape 4. Accéder à votre application dans le navigateur
Ouvrez votre navigateur et naviguez vers http://localhost:30001.
Vous devriez voir votre application React.js Sample prête pour la production en cours d'exécution — servie par votre cluster Kubernetes local.
Étape 5. Nettoyer les ressources Kubernetes
Une fois les tests terminés, vous pouvez supprimer le déploiement et le service en utilisant :
$ kubectl delete -f reactjs-sample-kubernetes.yaml
Sortie attendue :
deployment.apps "reactjs-sample" deleted
service "reactjs-sample-service" deleted
Cela garantit que votre cluster reste propre et prêt pour le prochain déploiement.
Résumé
Dans cette section, vous avez appris à déployer votre application React.js sur un cluster Kubernetes local en utilisant Docker Desktop. Cette configuration vous permet de tester et de déboguer votre application conteneurisée dans un environnement similaire à la production avant de la déployer dans le cloud.
Ce que vous avez accompli :
- Créé un Déploiement Kubernetes et un Service NodePort pour votre application React.js
- Utilisé
kubectl apply
pour déployer l'application localement - Vérifié que l'application fonctionnait et était accessible à
http://localhost:30001
- Nettoyé vos ressources Kubernetes après les tests
Ressources associées
Explorez les références officielles et les meilleures pratiques pour affiner votre flux de travail de déploiement Kubernetes :
- Documentation Kubernetes – Apprenez les concepts de base, les charges de travail, les services, et plus encore.
- Déployer sur Kubernetes avec Docker Desktop – Utilisez le support Kubernetes intégré de Docker Desktop pour les tests et le développement locaux.
- Référence CLI
kubectl
– Gérez les clusters Kubernetes depuis la ligne de commande. - Ressource Déploiement Kubernetes – Comprenez comment gérer et mettre à l'échelle des applications à l'aide de Déploiements.
- Ressource Service Kubernetes – Apprenez à exposer votre application au trafic interne et externe.