Kubernetes Test Container
This is a very simple container that you can use to test your Kubernetes cluster.
Simply create a deployment and service with the yaml file:
kubectl create -f ./kubernetes/kube-test-container.yaml
The containers have already been uploaded so you don't need to build anything here. But the full source is provided here if you want to extend this (Pull Request welcome).
Scale the deployment
kubectl scale deployment kube-test-container --replicas=30
Turn on automatic scaling with HPA
kubectl autoscale deployment kube-test-container --min=10 --max=20
View the status
kubectl get deploy,svc kube-test-container
View the status page and generate load
View the external IP Address using the Load Balancer IP
http://IPADDRESS/. You will see the correct address marked
EXTERNAL-IP in the service status (see above).
If you click the "Let one use too much RAM"
http://IPADDRESS/ram or "Let one use too much CPU"
to trigger one of the container to use too much RAM / CPU (this will grow unbound).
Click "Fetch multiple status pages" for requesting status
External load testing
You can use your favorite benchmarking tool. The simplest for many would be Apache Benchmark:
ab -n 1000 -c 10 http://IPADDRESS/status
There are three different versions of this component that only differ in reporting a different version:
kubectl set image deployment/kube-test-container kube-test-container=sverrirab/kube-test-container:v1.1
kubectl delete deploy,svc kube-test-container
For testing your cluster with Helm:
helm repo add kube-test-container https://raw.githubusercontent.com/sverrirab/kube-test-container/master/helm/charts/
To see available versions:
helm search --versions kube-test-container
And to install:
helm install --version 1.1.0 --name ktc kube-test-container/kube-test-container
Building and testing
If you want to make modifications you can use the
./build.sh script to build a local docker container
./run.sh to test it locally through
MIT License - read the LICENSE file for details.