maj readme installtion des dépendances

minikube
Grégory Lebreton 11 months ago
parent 013f5e10f1
commit 2dd5495bd9

3
.gitignore vendored

@ -1 +1,2 @@
minikube-linux-amd64
minikube-linux-amd64
docker-compose.yml

@ -2,13 +2,28 @@
Exemple de déploiement d'une application flask avec postgres en backend et vue.js en front
### Pré requis :paperclip:
## Pré requis :paperclip:
- Docker et compose plugin :whale:
- Virtualbox :computer:
- Minikube (mini K8S)
### Installation Minikube :construction:
### Installation Docker et compose
```bash
wget https://git.legaragenumerique.fr/GARAGENUM/docker/raw/branch/main/docker-install.sh && bash ./docker-install.sh
```
##~ Installation de Virtualbox
```bash
wget -O- -q https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmour -o /usr/share/keyrings/oracle_vbox_2016.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle_vbox_2016.gpg] http://download.virtualbox.org/virtualbox/debian bookworm contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt update
sudo apt install virtualbox-7.0
```
### Installation Minikube
Installer et lancer [Minikube](https://kubernetes.io/docs/setup/minikube/):
@ -24,10 +39,10 @@ minikube start --vm-driver=virtualbox --nodes 2
minikube dashboard
```
### Déploiement des services :rocket:
> La dashboard pop dans le navigateur :bar_chart:
## Déploiement des services :rocket:
#### Volume persistant
- Créer le volume persistant:
@ -44,13 +59,13 @@ kubectl apply -f ./kubernetes/persistent-volume-claim.yml
#### Secrets :lock:
- Créer un objet secret:
- Créer un objet secret (database user + password):
```bash
kubectl apply -f ./kubernetes/secret.yml
```
> Les secrets sont encodés sur base 64
Les secrets sont encodés sur base 64
```bash
echo -n "pleasechangeme" | base64
# output:
@ -106,13 +121,13 @@ kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py seed_db
#### Vue
Créer le deployement:
- Créer le deployement:
```bash
kubectl create -f ./kubernetes/vue-deployment.yml
```
- - Créer le service:
- Créer le service:
```bash
kubectl create -f ./kubernetes/vue-service.yml
@ -133,7 +148,7 @@ kubectl apply -f ./kubernetes/minikube-ingress.yml
echo "$(minikube ip) flask.k8s" | sudo tee -a /etc/hosts
```
### Résultat :checkered_flag:
## Résultat :checkered_flag:
- L'application est disponible à l'adresse:
@ -145,7 +160,7 @@ echo "$(minikube ip) flask.k8s" | sudo tee -a /etc/hosts
for ((i=1;i<=10;i++)); do curl http://flask.k8s/books/ping; done
```
### Version semi automatisée (deploy.sh)
## Version semi automatisée (deploy.sh)
```bash
./deploy.sh
@ -181,7 +196,7 @@ kubectl scale deployment vue --replicas=2
kubectl logs <POD_NAME>
```
### Debug :sob:
## Debug :sob:
- En cas de problèmes avec Minikube, reinstaller celui-ci:
@ -193,11 +208,11 @@ rm -rf ~/.minikube
minikube start
```
### Cheatsheet :stuck_out_tongue_winking_eye:
## Cheatsheet :stuck_out_tongue_winking_eye:
[Kubernetes commandes](https://github.com/dennyzhang/cheatsheet-kubernetes-A4)
### Todo :clipboard:
## Todo :clipboard:
- [ ] commandes kubectl utiles + mise à l'échelle
- [ ] changer flask.book

@ -1,39 +0,0 @@
version: '3.8'
services:
server:
container_name: flask-backend
build:
context: ./services/server
dockerfile: Dockerfile
ports:
- 5001:5000
environment:
- FLASK_ENV=development
- APP_SETTINGS=project.config.DevelopmentConfig
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
depends_on:
- postgres
postgres:
container_name: postgres
build:
context: ./services/db
dockerfile: Dockerfile
expose:
- 5432
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
client:
container_name: vue-front
build:
context: ./services/client
dockerfile: Dockerfile
ports:
- 8080:8080
depends_on:
- server
Loading…
Cancel
Save