-
Notifications
You must be signed in to change notification settings - Fork 6
Milestone 4
Sudip Padhye edited this page Apr 14, 2021
·
17 revisions
- Developing Jmeter Script
- Load Testing
- Spike Testing
- Measuring Fault Tolerance
sudo apt-get update &&
sudo apt-get install default-jre &&
sudo apt-get install zip &&
sudo apt-get install unzip
- Installing Jmeter
- Dependencies: Concurrent Thread Groups
- Enabling Jmeter Cache Storage
- Configuring Jmeter certificate and localhost proxy
- Storing images into the Jmeter bin folder
For 4 replicas of our Kubernetes microservices, we observed the following throughput graphs for 100, 500, and 1000 users.
<2-3 graphs>
Scaling-up command:
kubectl scale deployment <deployment-name> --replicas=<higher-replica-number> -n <namespace>
Scaling-down command:
kubectl scale deployment <deployment-name> --replicas=<lower-replica-number> -n <namespace>
Dependencies:
To measure the fault tolerance of our system we made use of Kubemonkey (Chaos Engineering) concept. Following is the code to install helm & kubemonkey:
cd PingIntelligence &&
git checkout automation-script &&
git pull &&
bash helm-installation.sh &&
cd .. &&
git clone https://github.com/asobti/kube-monkey &&
mv PingIntelligence/values.yaml kube-monkey/helm/kubemonkey/ &&
helm install -name my-release kubemonkey -f kube-monkey/helm/kubemonkey/values.yaml &&
kubectl apply -f PingIntelligence/kubemonkey-config.yaml
The above code enables kubemonkey to monitor the default namespace, kills 3 random service replicas with a frequency of daily run (Scheduling runs at 8am and pods are destroyed from 10 am-4 pm).
Architectural Changes:
- Deploying Kafka, Zookeeper, MySQL, consumer-queue1 & consumer-queue2 into another namespace that is blacklisted by Kube-monkey
- Establishing communication between pods of different namespaces (default and other).
- Introducing Replication controller/ReplicaSet along with Horizontal Pod Autoscaler (HPA).
https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/