CDS
intégration et déploiement Consort pour U GIE IRIS
Les activités de ce centre de service sont :
- le transport et de l’installation des packages de fichier.
- la vérification de l’exploitabilité.
- la supervision et l’exploitation des environnements de recette.
- le déploiement des applicatifs sur les serveurs.
CDS
intégration et déploiement Consort pour U GIE IRIS
Les activités de ce centre de service sont :
- le transport et de l’installation des packages de fichier.
- la vérification de l’exploitabilité.
- la supervision et l’exploitation des environnements de recette.
- le déploiement des applicatifs sur les serveurs.
CDS
intégration et déploiement Consort pour U GIE IRIS
Les activités de ce centre de service sont :
- le transport et de l’installation des packages de fichier.
- la vérification de l’exploitabilité.
- la supervision et l’exploitation des environnements de recette.
- le déploiement des applicatifs sur les serveurs.
CDS
intégration et déploiement Consort pour U GIE IRIS
Les activités de ce centre de service sont :
- le transport et de l’installation des packages de fichier.
- la vérification de l’exploitabilité.
- la supervision et l’exploitation des environnements de recette.
- le déploiement des applicatifs sur les serveurs.
CDS
intégration et déploiement Consort pour U GIE IRIS
Les activités de ce centre de service sont :
- le transport et de l’installation des packages de fichier.
- la vérification de l’exploitabilité.
- la supervision et l’exploitation des environnements de recette.
- le déploiement des applicatifs sur les serveurs.
CDS
intégration et déploiement Consort pour U GIE IRIS
Les activités de ce centre de service sont :
- le transport et de l’installation des packages de fichier.
- la vérification de l’exploitabilité.
- la supervision et l’exploitation des environnements de recette.
- le déploiement des applicatifs sur les serveurs.
CDS
intégration et déploiement Consort pour U GIE IRIS
Les activités de ce centre de service sont :
- le transport et de l’installation des packages de fichier.
- la vérification de l’exploitabilité.
- la supervision et l’exploitation des environnements de recette.
- le déploiement des applicatifs sur les serveurs.
Conteneurisation Docker/Kubernetes
En premier lieu j'ai commencé par la mise en place d'un docker.
L'objectif était de transférer grafana sur docker, pour cela j'ai créé une vm sous centOS8 avec 4go de mémoire vive et 4 coeur cpu.
J'ai configuré le réseau avec "nmtui edit 'périphérique' " puis on restart le réseau "systemctl restart NetworkManager"
Comme pour dans les autres projets il faut changer les dépôts
après cela on peut installer docker-ce dans la liste des version disponible
Donc après l'avoir installer: yum install docker-ce
on le lance: systemctl start docker
Et puis on peut lancer/pull grafana, ce qui va créer un conteneur contenant docker: docker run -d --name=grafana -p 3000:3000 grafana/grafana
3000 correspond au port utiliser par docker
Docker-compose
En second lieu j'ai installé l'outil Docker Compose pour optimiser les conteneurs dans un fichier de configuration YAML pour pouvoir lancer plusieurs service dépendant en même temps.
On créer un répertoire grafana-server dans /home, dans ce répertoire on y installe docker-compose qu'on rend exécutable.
curl -SL https://github.com/docker/compose/releases/download/v2.3.4/docker-compose-linux-x86_64 -o ./grafana-server
chmod +x /home/grafana-server/docker-compose
en cas de questionnement sur la version de docker-compose, la commande './docker-compose version marche
Si dans la racine il n'y a pas de fichier docker-compose.yml, il faudra le créer et le remplir car c'est le fichier qui va contenir tout les conteneurs:
touch docker-compose.yml
vi docker-compose.yml
En premier on y voit la configuration du service traefik qui fera office de reverse proxy et en second la configuration du service grafana avec son image, son volume, ses variables d'environnements ainsi que les règles traefik.
Ensuite on doit transférer les fichiers de l'ancien grafana à celui-ci, pour cela on archive tout à la racine puis on l'envoie via sftp.
tar -cvf grafana.tar ./
get grafana.tar
sur le serveur docker-compose on le récupère, le dezip dans le volume grafana, on remonte les dossiers et on supprime l'archive
put grafana.tar
tar xvf grafana.tar /home/grafana-server/grafana-volume
cd grafana
mv * ../
rmdir grafana
Pour ce qui est de la configuration de traefik on doit créer un fichier traefik.toml qu'il utilisera pour sa configuration puis on doit donner les droits pour utiliser le dossier volume lors du lancement de docker-compose:
/home/docker-compose/docker-volume chown -R 472:root *
472 = id de grafana
Il ne reste plus qu'a rajouter des Healthcheck pour vérifier si les services sont toujours en cours.
pour faire un healthcheck de grafana on a vu que si on rajoute /api/health à la suite de la page web grafana on se retrouvé sur une page avec un code 200 ok ainsi que sa version
pour vérifier cela on rentre dans le conteneur docker de grafana avec son id propre
docker exec -it “id du conteneur” /bin/bash
ensuite dans le bash on test de wget la page
wget --spider 127.0.0.1:3000/api/health
l’option --spider permet de ne pas télécharger la page web, comme la page apparaît bien sans erreur
Donc on le rajoute dans la configuration du conteneur grafana en y ajoutant des intervales de temps de test.
Kubernetes
Après cette entrée en matière en conteneurisation avec docker et docker-compose, on passe sur kubernetes qui est une solution open-source d'optimisation de déploiement, de montée en charge et de la mise en oeuvre de conteneurs d'application sur des clusters de serveurs.
Sur un serveur déjà existant dans mon répertoire racine j'ai créé trois fichiers mais avant cela on doit setup la config avec le namespace 'hugo'
kubectl api-resources --namespaced=true pour activer le namespace
kubectl config set-context --current --namespace=hugo
puis on y crée ces trois fichiers, dans chaque fichier on met la configuration, service, déploiement, connexion.
le fichier de déploiement wordpress
touch wordpress.yaml
vi wordpress.yaml
le fichier de déploiement de mysql
touch mysql.yaml
vi mysql.yaml
ainsi que le fichier du volume persistent
touch pvc.yaml
Pour mettre en place ces pods il faut les appliquer
kubectl apply -f ‘nom du fichier de déploiement.yaml’ -n ‘nom du namespace’
pour vérifier: kubectl get pod
Résultat
configuration de Kubernetes pour test de charge
En reprenant la configuration d'avant on va faire des tests de charge sur cette infrastructure.
On créer un fichier de volume persistent a la racine /root pour wordpress qui sera lié au repertoire /mnt/data
le fichier de déploiement de wordpress
touch wordpress.yaml
vi wordpress.yaml
ainsi que les fichier du password "secret" et le volume persistent pour mysql
touch mysql-secret.yaml
vi mysql-secret.yaml
touch mysql-volume.yaml et mysql-volumeclaim.yaml
puis on les remplit vi mysql-volume.yaml puis mysql-volumeclaim.yaml
Puis le déploiement de mysql
touch mysql.yaml
vi mysql.yaml
Pour ce qui est des volumes persistent on peut utiliser une autre façon qui créer automatiquement des volumes persistent.
touch pvc.yaml
vi pvc.yaml
Resultat des scénario de test
Compétences
Gérer le patrimoine informatique
-
Recenser et identifier les ressources numériques
-
Exploiter des référentiels, normes et standards adoptés par le prestataire informatique
Mettre à disposition des utilisateurs un service informatique
-
Déployer un service
-
Accompagner les utilisateurs dans la mise en place d’un service