The Kubernetes testbed is a project to allow flexible testings on Kubernetes clusters. The main application is a simplified Twitter-like app with Cassandra database to persist data. To monitor the app performance, Istio and Prometheus are used to gather the metrics from the underlying Kubernetes cluster. With the metrics, one critical step is to control the performance to a desired state. To acheive it, the technologies from Turbonomic, including Kubeturbo, Prometurbo, and Turbo server are used to further monitor and control the system.
Twitter App :
- The simplified Twitter-like application in scalable microservice architecture.
- See
here
for the architecture and deployment;
Cassandra Cluster and Exporter :
- The
Cassandra cluster
is the backend databases for the Twitter app; - The
Cassandra exporter
gather metrics from Cassandra and allows other components to query;
Istio and Prometheus :
Istio
is used to gather metrics for HTTP and GRPC traffic in the application;Prometheus
pulls metrics from Istio and Cassandra exporters;
Turbo Server, Kubeturbo and Prometurbo :
Turbo Server
performs analysis to the kubernetes cluster and control it to the desired state;Kubeturbo
gathers metrics from the k8s cluster, send them to Turbo server, and perform actions from Turbo server;Prometurbo
pulls metrics of the app and Cassandra cluster from Prometheus and send them to Turbo server;
User Simulator :
- Simulate the users' behavior to visit the app.
Locust
cluster is used here.
- Turbonomic 6.2+
- Kubernetes 1.7.3+
- Istio 1.0+
- See
Testbed Deployment
section