Kubernetes déploiement via Minikube, Kind et Vagrant
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Grégory Lebreton 4aaa3e8618 push 11 months ago
kubernetes push 11 months ago
services push 11 months ago
README.md push 11 months ago
deploy.sh push 11 months ago
docker-compose.yml push 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:

  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.