Virtual Beach Web is an analytical prediction making tool using statistical and machine learning techniques through a dynamic web user interface. The application is fully containerized and deployed using kubernetes for container orchestration. The full technology stack contains the following components:
- Django (web framework)
- Angular 10 (graphical user interface, served through django)
- PostgreSQL (django database)
- Dask (asynchronous and distributed tasks)
Deployment | Docker Image | Build Status |
---|---|---|
vb-django.yml | quanted/vb_django | |
vb-dask.yml | quanted/vb_dask | |
vb-postgres.yml | postgres | Official Image |
- Python 3.8
- Conda environment yml can be found in vb_django/environment.yml
- pip requirements txt can be found in vb_django/install_requirements.txt (windows)
- Docker
- Minikube
- Administrative access
Minikube for windows, using docker, can be started by running the following command:
minikube start --driver=docker --cpus=CPUS --memory=RAMGb
Once minikube has successfully started, the kubectl commands will now use the configured minikube environment. All documented kubectl commands are available, such as
kubectl apply -f vb-django.yml
kubectl get pods
kubectl describe hpa
The minikube/kubernetes dashboard can also be accessed for testing, monitoring and setup
minikube dashboard
To access a deployment/pod within your minikube node, open up a tunnel access point using the following command, where SERVICE would be vb-django for vb_kube.
minikube service --url SERVICE
Using Minikube on windows with deployments that use mounted volumes requires an additional step to be able to access those volumes. Two volumes must be mounted to the minikube host, the container created in Docker. After minikube has been started and is running, run the following two commands in two separate cmd windows terminals, as admin:
minikube mount PATH_TO_APP_DATA:/host/app_data
minikube mount PATH_TO_VB_DJANGO:/host/vb_django
These windows will need to be left active for the mounts to remain accessible.