Skip to content

Milestone 3.2 : Setup

Adithya Selvaprithiviraj edited this page May 4, 2020 · 8 revisions

Project Setup

It is assumed that the project is setup in a remote cloud like jet stream as mentioned in milestone 2.

If not please follow the information mentioned here

  • ssh into your master vm containing kubernetes installed and project deployed
git clone https://github.com/airavata-courses/CAPtivate.git

git checkout release/project-3.2

Setup Istio

Istio can be installed by doing the following steps as mentioned in this tutorial :

 curl -L https://istio.io/downloadIstio | sh -
 cd istio-1.5.2
 export PATH=$PWD/bin:$PATH
 istioctl manifest apply --set profile=demo

Inject side car

We can inject side cars either manually or automatically. For simplicity we shall enable automatic sidecar injection using the command

kubectl label namespace default istio-injection=enabled

Once this is done, assuming that the microservices are up and running, we can inject sidecar proxy by just deleting all the pods

kubectl delete pods --all

Setup virtual gateway

kubectl apply -f mesh-gateway.yaml

Canary deployment

cd CAPtivate/deployments
kubectl apply -f ui.yaml
kubectl apply -f ui-destination-rules.yaml
kubectl apply -f ui-vs-traffic.yaml

Make requests in browser to the Nodeport of the ingress gateway to check the results

Custom Content Delivery

cd CAPtivate/deployments
kubectl apply -f ui-ab-deployment.yaml
kubectl apply -f ui-ab-destination.yaml
kubectl apply -f ui-AB-service.yaml

Make requests in browser with browser agent as Chrome and Safari to the Nodeport of the ingress gateway to check the results

Circuit Breaking

cd CAPtivate/deployments
kubectl apply -f ui.yaml
kubectl apply -f ui-destination-rules.yaml
kubectl apply -f ui-destination-w-circuit-breaker.yaml

The results from the circuit breaker installation can be checked by running the jmeter tests in CAPtivate/deployments/Istio-UI.jmx and observing the dashboard in kiali and grafana dashboards