Déploiement de la VotingApp

Dans cette partie, vous allez déployer la VotingApp dans le cluster que vous venez de mettre en place.

  1. Récupération des manifests

Commencez par cloner le répository GitHub qui content les specifications des resources.

git clone https://gitlab.com/voting-application/devops.git
cd manifests/databases
  1. Création des resources

Depuis un shell dans lequel vous avez configuré kubectl, lancez la commande suivante afin de créer les resources Kubernetes utilsées pour définir les composants de l’application.

kubectl apply -f .
  1. Accès à l’application

Les manifests que vous avez créés permettent d’exposer l’application via un Service de type NodePort. C’est à dire que les interfaces de vote et de result sont accessible en utilisant l’adresse IP de l’un des workers, et les ports 31000 et 31001.

Pour connaitre les IP externes des Nodes du cluster, vous pouvez lister ces Nodes depuis le portail Exoscale, ou bien utiliser la commande suivante:

$ kubectl get no -o wide
NAME               STATUS   ROLES    AGE   VERSION   INTERNAL-IP     EXTERNAL-IP     OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
pool-b1553-hgwyg   Ready    <none>   84m   v1.34.0   91.92.202.148   91.92.202.148   Ubuntu 24.04.3 LTS   6.8.0-79-generic   containerd://2.1.4
pool-b1553-ouvgo   Ready    <none>   84m   v1.34.0   91.92.203.61    91.92.203.61    Ubuntu 24.04.3 LTS   6.8.0-79-generic   containerd://2.1.4
Les adresses IP que vous obtiendrez seront différentes de celle listéesci-dessus

Dans cet exemple, nous pouvons alors accéder à l’interface de vote depuis http://91.92.202.148:31000, et à l’interface de results depuis http://91.92.202.148:31001

vote

result

Pour exposer une application dans un context de production, nous n’utiliserons pas un Service de type NodePort mais des resources permettant de configurer un Ingress Controlleur, ou un Gateway API (successeur du Ingress Controlleur). Ces composants permettent d’exposer une application proprement.

Déployer une application à partir de manifests, comme nous l’avons fait ci-dessus, n’est pas très configurable ni dynamique. En effet, à chaque nouvelle version d’un microservice il est nécessaire de modifier la spécification correspondante. Dans la section suivante, nous allons présenter les technologies les plus utilisées pour facilité le déploiement d’une application.

  1. Suppression de l’application

Utilisez la commande suivante afin de supprimer l’ensemble des resources que vous avez créées précedemment.

kubectl delete -f .