Le projet consiste a mettre en place une infrastructure de différents services a l'aide de Kubernetes.
Vous allez aussi devoir mettre en place :
- Le dashboard web de Kubernetes. Celui-ci est utile pour gérer votre cluster.
- Un Load Balancer qui gère l’accès externe à vos services dans un cluster. C’est
uniquement lui qui vous servira pour exposer vos services. Vous devez garder les
ports propres aux services (IP
:3000pour grafana etc). - Un serveur Nginx ouvert sur les
ports 80 et 443. Leport 80sera en http et devra faire une redirection systématique de type301vers le443, qui sera lui en https. La page affichée n’a pas d’importance. - Un serveur FTPS ouvert sur le
port 21. - Un WordPress ouvert sur le
port 5050, fonctionnant avec une base de données MySQL. Les deux devront être dans deux containers distincts. Le wordpress devra comporter plusieurs utilisateurs et un administrateur. - PhpMyAdmin, tournant sur le
port 5000et relié à la base de données MySQL. - Un Grafana, accessible sur le
port 3000, fonctionnant avec une base de données InfluxDB. Celui-ci devra vous permettre de monitorer tous vos containers. Les deux devront aussi être dans deux containers distincts. Vous devrez créer un dashboard par container. - En cas de crash ou d’arrêt d’un des deux containers de base de données, vous devrez vous assurer que celles-ci puissent persister et ne soient pas perdues. En cas de suppression, les volumes où la data est sauvegardée doivent persister.
- Vous devrez vous assurer de pouvoir accéder à votre Nginx en connexion SSH.
- Chacun de vos containers devra pouvoir redémarrer automatiquement en cas de crash ou d’arrêt d’un des éléments le composant.
Install helm / jq / docker / docker-machine / virtualbox / kubectl / minikube : Documentation.
Git clone le projet et ./setup.sh [$1 (delete / restart / ssh / minikube / dashboard / ip / password)] [$2 (only)] dans le projet (ft_services).
-
$1 :
delete: suppression des containers (no only possible)restart: redemarrage de tout les containers (no only possible)ssh: redirection vers le sshminikube: activation et redirection de l'interface minikubedashboard: affichage des containers et de leur etatip: voir l'ip du serveurpassword: afficher les mots de passe MySql et wordpress
-
$2:
only: pour executer seulement le premier argument (seulement suprimé les containers, voir l'ip, etc...)











