Le schéma explicatif
Voici un schéma reprenant les composants de l'outil NumEcoEval à installer.
Les pré-requis
Les pré-requis au niveau de l'infrastructure sont :
-
Un accès internet: Un accès à internet pour pouvoir télécharger les images docker utilisées pour ce déploiement.
-
kubectl: Kubectl est nécessaire pour interagir avec votre cluster kubernetes ou vous souhaitez déployer NumEcoEval.
-
Docker: Kubernetes est un orchestrateur de container Docker. Il faut donc installer ce dernier pour effectuer le déploiement.
-
Un cluster k8s fonctionnel: Il vous faut un cluster kubernetes local ou hébergé chez un cloud provider sur lequel vous souhaitez déployer NumEcoEval. Pour les solutions locales vous pouvez utiliser kind ou minikube. N'oubliez pas de configurer kubectl pour utiliser le cluster déployé:
'moncluster' étant le nom du cluster que vous avez donné à sa création.kubectl config use-context moncluster
-
K9s: Il est également recommandé (pas obligatoire) d'installer K9S pour faciliter le suivi du déploiement et l'administration de votre cluster en temps réel.
-
Helm: Ce déploiement s'effectue via l'utilisation d'une chart Helm.
-
Quelques connaissances: Une bonne compréhension générale de NumEcoEval couplé avec G4it et de son architecture peuvent être utile pour comprendre le déploiement. Vous pouvez vous référer à la documentation de NumEcoEval ainsi qu'au schéma d'architecture donné précédemment.
Le temps de déploiement
Ce déploiement se veut très simple et très rapide puisque l'intégralité de ce déploiement s'effectue en 1 commande.
Ce dernier prend en moyenne entre 5 à 10 minutes le temps que les images dockers nécessaires au déploiement se téléchargent et que keycloak s'initialise correctement.
Le déploiement
Configuration du déploiement
Comme indiqué précédemment, ce déploiement repose sur une chart Helm. Le fichier values.yaml sert de base de configuration pour la chart Helm qu'on installe et désinstalle à notre guise.
Pour configurer le déploiement, vous pouvez copier le fichier value.yaml et l'éditer à votre guise pour répondre à vos besoins spécifiques.
Le fichier values.yaml par défaut tel qu'il est donné suffit pour un déploiement fonctionnel en environnement de developpement.
Vous pouvez retrouver le fichier values.yaml ici La liste des values et de ce qu'elles configurent se trouve sur le README.md visible ici
ATTENTION: Le fichier values.yaml fourni par défaut ne doit pas être utilisé en environnement de production. Ce fichier permet de configurer des mots de passe utiles à l'administration de keycloak et de g4it. Par conséquent il est de votre responsabilité de copier le fichier values.yaml de modifier les valeurs sensibles (section SECRETS) et de ne pas rendre publique votre configuration.
Les étapes de déploiement
Depuis le répertoire: g4it:
helm install g4it -f my-values.yaml
Dans cette commande, nous avons supposé que vous avez créé et configuré un fichier "my-values.yaml" à partir du fichier "values.yaml" par défaut.
Quels sont les points d'attention ?
Pour que g4it x NumEcoEval fonctionne, il faut que le frontend, le backend et keycloak soient exposés (port-forward).
A vous de décider comment vous souhaitez faire.
Option 1:
Par défaut, les services sur lesquels reposent le déploiement de ces briques sont de type ClusterIP. Il faut donc effectuer un port-forward de ces services pour les rendres accessibles.
Si vous avez installé k9s, vous pouvez réaliser cette opération très simplement depuis l'interface.
Sinon il faut configurer les port forward manuellement en utilisant kubectl:
kubectl port-forward svc/g4it-backend 8080:8080
kubectl port-forward svc/g4it-frontend 4200:4200
kubectl port-forward svc/keycloak 8090:8090
Alternativement, vous pouvez modifier le type de service utilisé par défaut par ce déploiement pour les passer en LoadBalancer ou NodePort pour les rendre accessible directement sans avoir à configurer les port forward manuellement.
Option 2:
Si vous le souhaitez, un Ingress Traefik (reverse proxy) est également déployé pour pouvoir exposer les différents services. C'est à vous de le configurer. Une documentation technique expliquant comment faire peut être trouvée ici
Comment désinstaller la chart Helm ? (supprimer le déploiement)
helm uninstall g4it
Le Test
Accès Frontend
Par défaut le frontend est accessible via ce lien http://localhost:4280
Si vous êtes sous Linux, vous pouvez éditer votre fichier '/etc/hosts' afin de faire de la redirection sur localhost:
/etc/hosts:
...
127.0.0.1 g4it-backend
127.0.0.1 g4it-frontend
127.0.0.1 keycloak
Accès aux swaggers de NumEcoEval
Pour accéder aux swaggers pour l'import des données au niveau de NumEcoEval, il faut exposer l'api rest des referentiels:
kubectl port-forward svc/api-rest-referentiels 8085:8080
Vous pouvez maintenant acceder au swagger ici
Traefik access
Une interface graphique est déployée pour accéder à la configuration de l'ingress Traefik.
Cette interface est directement accessible en suivant les étapes suivantes:
Récupérez l'IP du noeud:
kubectl get nodes -o wide
Vous pouvez maintenant accéder: - A l'interface Traefik en suivant l'adresse http://IP:30808 - Au reverse proxy Traefik en suivant l'adresse http://IP:30080
Quels sont les sites ressources ?
Le site source de Kubernetes : Kubernetes