2023-10-28 16:40:09 +02:00
2023-10-28 16:40:09 +02:00
2023-10-28 16:40:09 +02:00
2023-10-28 16:40:09 +02:00
2023-10-28 16:40:09 +02:00
2023-10-28 16:40:09 +02:00

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:

  1. http://localhost:8080/
  2. http://localhost:5001/books/ping
  3. http://localhost:5001/books

Kubernetes

Minikube

Installer et lancer 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:

  1. http://hello.world/books/ping
  2. http://hello.world/books

http://hello.world/.

Source

source.

Description
Kubernetes déploiement via Minikube, Kind et Vagrant
Readme 211 KiB
Languages
JavaScript 44.7%
Vue 24.3%
Shell 16.8%
Python 11.8%
Dockerfile 1.8%
Other 0.6%