This project consist to clusturing an docker-compose application and deploy it with Kubernetes.
1 - Kubernetes Tutorial:
Nana: https://www.youtube.com/watch?v=X48VuDVv0do
Important Kuberetes Concepts: https://kubernetes.io/docs/concepts/
2 - Kubernetes YAML File Explained - Deployment and Service: https://www.youtube.com/watch?v=qmDzcu5uY1I
3 - Extra Ressources:
MySQL: https://linuxize.com/post/mysql-remote-access/
MySQL: https://linuxize.com/post/how-to-show-databases-in-mysql/
MySQL: https://gridscale.io/en/community/tutorials/mysql-datenbank-erstellen-loeschen/#:~:text=To%20do%20delete%20a%20database,database%20you%20want%20to%20delete.
MetalLB Installation: https://metallb.universe.tf/installation/
MetalLB Configuration: https://metallb.universe.tf/configuration/
Supervisor: http://supervisord.org/configuration.html
Grafana: https://grafana.com/docs/grafana/latest/getting-started/getting-started/
FTPS: https://wiki.alpinelinux.org/wiki/FTP#vsftpd_Configuration
PASV: https://www.webopedia.com/definitions/pasv/
Reverse Proxy (Theory): https://www.nginx.com/resources/glossary/reverse-proxy-vs-load-balancer/
Reverse Proxy (Execution): https://www.linode.com/docs/guides/use-nginx-reverse-proxy/
SSH: https://forhjy.medium.com/42-ft-services-install-nginx-with-kubernetes-fd22a5fcb062
Liveness Probe: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
LP & RP: https://developers.redhat.com/blog/2020/11/10/you-probably-need-liveness-and-readiness-probes/
4 - StackOverFlow:
Bash: https://stackoverflow.com/questions/43801947/bash-get-return-value-of-a-command-and-exit-with-this-value
InfluxDB -p 8088: https://stackoverflow.com/questions/40844762/influxdb-port-8088
5 - Digital Ocean:
FTPS: https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-on-ubuntu-12-04
FTPS SSL: https://www.digitalocean.com/community/tutorials/how-to-configure-vsftpd-to-use-ssl-tls-on-an-ubuntu-vps
FTPS: https://www.digitalocean.com/community/questions/cannot-connect-to-ftp-through-filezilla
6 - Basic Docker Commands:
# Build a docker image from a Dockerfile
docker build -t {IMAGE_NAME} {DOCKERFILE_DIR}
# Start an instance of a docker image
docker run -it -p {SPECIFY_PORT} -d {IMAGE_NAME}
(-it stands for --> interactive terminal)
(-d stands for ---> detached mode)
# See all images
docker images
# Start a container
docker start {CONTAINER ID}
# See running containers
docker ps
# See unrunning container
docker ps -a
# Get a shell in a container
docker exec -it {CONTAINER ID} sh
# Stop a container
docker kill {CONTAINER ID}
# Delete all unused Docker images and cache
docker system prune
7 - Managing Pods With Kubernetes:
# Create a pod from a YAML file
kubectl create -f {FILE_NAME.yaml}
# Delete a pod
kubectl delete deployment {DEPLOYMENT}
kubectl delete service {SERVICE}
# Get a shell in a pod
kubectl exec -it <POD_NAME> -- /bin/sh
# Restart a deployment
kubectl rollout restart deployment {NAME}
# Launch minikube dashboard
minikube dashboard
# Get cluster external IP
minikube ip
# Reset Minikube VM
minikube delete
Extra - For more information about the project and more ressources, visit Jean-Xavierre's github: