Skip to content

Uchuva's microservices implementation for Kubernetes infrastructure deployment.

Notifications You must be signed in to change notification settings

Steven0414/uchuva_k8s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uchuva: Microservices implementation

Uchuva is a scientific web portal that allows to create workflows and submit them to HTCondor (Dagman), Slurm, OpenLava (LSF) and Torque (PBS). It is designed to be fast, flexible and simple.

Uchuva was implemented following a monolithic approach. This new implementation follows a microservice architecture thus enhances the scalability and upgradability aspects of the original version.

Original project GitHub repository.

Installation

Before

Verify that you have enabled virtualization.

On Linux

egrep --color 'vmx|svm' /proc/cpuinfo

On Mac

sysctl -a | grep machdep.cpu.features | grep VMX

It must show something like this:

machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C

Dependencies

Install a hypervisor

If you don't have a hypervisor installed, please install one. VirtualBox, KVM.

Install kubectl on Linux

For kubectl installation through snap:

snap install kubectl --classic

kubectl version --client

For kubectl installation through apt:

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

A complete installation guide for kubectl can be found at Install and SetUp Kubectl.

Install kubectl on Mac

brew install kubectl

Additional details can be found at Install and Set Up kubectl on macOS.

Install Minikube on Linux

For local Kubernetes cluster.

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube
sudo cp minikube /usr/local/bin && rm minikube

A complete installation guide for minikube can be found at Install Minikube.

Install Minikube on Mac

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
sudo install minikube-darwin-amd64 /usr/local/bin/minikube

Install Minikube Ingress Controller Add-On

chmod +x ./start_ingress
./start_ingress

Deployment

For a complete deployment:

chmod +x ./apply_auto
./apply_auto

It may take from 10 to 60 minutes to complete (the first time).

Usage

First get the Minikube exposed IP direction:

minikube ip

Open the Minikube exposed IP in your favorite web browser to view the host page.

Test

Test the deployment

You can verify the health and the state of any resource deployed on Minikube through a dashboard:

minikube dashboard

LoadTest

This test allows to verify the response time of the uchuva-index microservice. This test is executed with K6/LoadImpact.

Testing with K6/LoadImpact Docker Container

cd ./test
sudo docker run -i loadimpact/k6 run -< loadtest.js

A complete testing guide with K6/LoadImpact can be found at K6's official documentation.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

About

Uchuva's microservices implementation for Kubernetes infrastructure deployment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages