Configuration files for deploying RSS Recipes on Kubernetes.
- A Kubernetes cluster
- minikube on a local machine or
- Physical/virtual cluster
RSS Recipes can be deployed by executing the following steps on the master node:
- Deploy ActiveMQ server
kubectl create -f https://raw.githubusercontent.com/hora-prediction/kubernetes-recipes-rss/master/activemq.yaml
- Deploy Kieker Logging Server
kubectl create -f https://raw.githubusercontent.com/hora-prediction/kubernetes-recipes-rss/master/kls.yaml
- Deploy RSS Recipes application
kubectl create -f https://raw.githubusercontent.com/hora-prediction/kubernetes-recipes-rss/master/rssreader.yaml
for the application without instrumentation orkubectl create -f https://raw.githubusercontent.com/hora-prediction/kubernetes-recipes-rss/master/rssreader-kieker.yaml
for the application instrumented with Kieker
- Initialize cassandra keyspace
curl -s https://raw.githubusercontent.com/hora-prediction/kubernetes-recipes-rss/master/initialize-cassandra.cql -o initialize-cassandra.cql
kubectl cp initialize-cassandra.cql $(kubectl get po | grep ^cassandra- | head -n 1 | cut -d ' ' -f1):/.
kubectl exec $(kubectl get po | grep ^cassandra- | head -n 1 | cut -d ' ' -f1) -- cqlsh -f /initialize-cassandra.cql $(kubectl get nodes | head -n 2 | tail -n 1 | cut -d ' ' -f1) 31002
Note: This step may need to be executed many times until it returns success.
- Deploy Locust for load testing
kubectl create -f https://raw.githubusercontent.com/hora-prediction/kubernetes-recipes-rss/master/locust-master.yaml
kubectl create -f https://raw.githubusercontent.com/hora-prediction/kubernetes-recipes-rss/master/locust-worker.yaml
After deploying all components, the following web-ui can be accessed:
- For minikube
- RSS Recipes
- Locust
- ActiveMQ
- http://192.168.99.100:31010 (username: admin, password: admin)
- Kieker monitoring log (available as a zip file)
- For physical/virtual cluster
- Same as those for minikube but replace
192.168.99.100
with one of the node IPs. (Runkubectl get nodes
to see the list of nodes)
- Same as those for minikube but replace