Grégory Lebreton 4aaa3e8618 | 11 months ago | |
---|---|---|
kubernetes | 11 months ago | |
services | 11 months ago | |
README.md | 11 months ago | |
deploy.sh | 11 months ago | |
docker-compose.yml | 11 months ago |
README.md
Kubernetes
Docker
Build the images and spin up the containers:
docker-compose up -d --build
Run the migrations and seed the database:
docker-compose exec server python manage.py recreate_db
docker-compose exec server python manage.py seed_db
Test it out at:
Kubernetes
Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Démarrer le cluster:
minikube start --vm-driver=virtualbox
minikube dashboard
Volume
Créer le volume persistant:
kubectl apply -f ./kubernetes/persistent-volume.yml
Créer le volume claim:
kubectl apply -f ./kubernetes/persistent-volume-claim.yml
Secrets
Créer un objet secret:
kubectl apply -f ./kubernetes/secret.yml
Postgres
Créer le deployement:
kubectl create -f ./kubernetes/postgres-deployment.yml
Créer le service:
kubectl create -f ./kubernetes/postgres-service.yml
Créer la database:
kubectl get pods
kubectl exec postgres-<POD_IDENTIFIER> --stdin --tty -- createdb -U postgres books
Flask
onstruire l'image et la pousser sur le Docker Hub:
docker build -t <DOCKER_HUB_USERNAME>/flask-kubernetes ./services/server
docker push <DOCKER_HUB_USERNAME>/flask-kubernetes
Make sure to replace
<DOCKER_HUB_USERNAME>
with your Docker Hub namespace in the above commands as well as in kubernetes/flask-deployment.yml
Créer le deployement:
kubectl create -f ./kubernetes/flask-deployment.yml
Créer le service:
kubectl create -f ./kubernetes/flask-service.yml
Appliquer la migration et la source de la database:
kubectl get pods
kubectl exec flask-<POD_IDENTIFIER> --stdin --tty -- python manage.py recreate_db
kubectl exec flask-<POD_IDENTIFIER> --stdin --tty -- python manage.py seed_db
Vue
Construire l'image et la pousser sur le Docker Hub:
docker build -t <DOCKER_HUB_USERNAME>/vue-kubernetes ./services/client \
-f ./services/client/Dockerfile-minikube
docker push <DOCKER_HUB_USERNAME>/vue-kubernetes
Again, replace
<DOCKER_HUB_USERNAME>
with your Docker Hub namespace in the above commands as well as in kubernetes/vue-deployment.yml
Créer le deployement:
kubectl create -f ./kubernetes/vue-deployment.yml
Créer le service:
kubectl create -f ./kubernetes/vue-service.yml
Ingress
Installer et démarrer l'ingress:
minikube addons enable ingress
kubectl apply -f ./kubernetes/minikube-ingress.yml
Ajouter une entrée au fichier /etc/hosts:
echo "$(minikube ip) hello.world" | sudo tee -a /etc/hosts
Try it out: