L'application "foo" est en python dans le fichier "foo.py" qui tourne sur le port 5000.
- Installer Docker.
- Créer l'image docker pour que l'application puisse tourner sur le port 8080 sur votre poste.
- Pusher l'image sur votre registry dockerhub (créer un compte).
Maintenant que l'application foo est dans votre registry, nous allons l'utiliser pour la déployer dans un minikube.
- Installer minikube.
- Créer le manifest en yaml ou json pour déployer l'application (un kind de type deployment).
- Créer le service pour contacter l'application (en clusterIP pour une communication en interne de minikube).
- Tester que vous arrivez à joindre l'application depuis un pod de test (vous pouvez utiliser l'image "alpine/curl" pour cela, avec l'url à tester en commande d'exec "kubectl run xx -- $URL". L'URL est l'IP du service ou le nom du service).
- Ajouter un loadbalancer (exemple avec metallb :
minikube addons configure metallb, IP start : 192.168.49.10 et IP end: 192.168.49.250, puisminikube addons enable metallb) à minikube pour créer un service de type LoadBalancer pour contacter l'application depuis l'extérieur de minikube (ie faites un curl pour contacter l'application). - Ajouter un ingress (
minikube addons enable ingresspuiskubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=90spour attendre que l'ingress s'installe) et rendez l'application joignable via l'ingress (avoir un service de type NodePort puis utiliser le template dans le fichier "ingress.yaml" du repo, FIXME= ip de minikube que nous avons avec la commandeminikube ip).