Test setup
Our testing has been done through kube-burner, with an EKS cluster as the host cluster, in the eu-west-3 region. All the configuration files are located here. You will need to change the default storage class from gp2 to gp3.
To monitor the metrics, you should install the kube-prometheus operator, and give it the permission to list the pods, services, endpoints and serviceMonitors by modifying the prometheus-k8s
clusterrole in the namespace you will deploy your vClusters in (or in all namespaces for a faster edit).
The APIs should be exposed (using the --expose
vCluster option). You can either create the service monitor manually or use the Helm values to have vCluster create it for you. Make sure that Prometheus has done at least one scrape to your vCluster API before running kube-burner, as it would otherwise result in missing data for some metrics.
To run the tests, run kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090
to have the host cluster's Prometheus forwarded to your local machine, then vcluster create --expose -f yourConfig yourCluster
to start your vCluster. Once everything is ready and Prometheus has detected your API servers, you will be able to run kube-burner init --metrics metrics.yaml -c config.yaml -u http://localhost:9090