This document describes how to start running writing benchmarks with mako on GKE.
- Assume cluster exists with istio lean and serving installed.
- ko is installed
- gcloud is installed
Take dataplane-probe
benchmark for example:
-
Apply mako config
kubectl apply -f test/performance/config/config-mako.yaml
-
Create an IAM service account:
gcloud iam service-accounts create mako-upload
-
Add the IAM service account here (A current owner must apply this before things will work and the SA must be whitelisted) then run:
mako update_benchmark test/performance/benchmarks/dataplane-probe/dev.config
-
Create a JSON key for it.
gcloud iam service-accounts keys create robot.json \ --iam-account=mako-upload@${PROJECT_ID}.iam.gserviceaccount.com
-
Create a secret with it:
kubectl create secret generic mako-secrets --from-file=./robot.json
-
Patch istio:
kubectl patch hpa -n istio-system istio-ingressgateway \ --patch '{"spec": {"minReplicas": 10, "maxReplicas": 10}}' kubectl patch deploy -n istio-system cluster-local-gateway \ --patch '{"spec": {"replicas": 10}}'
-
Patch knative:
kubectl patch hpa -n knative-serving activator --patch '{"spec": {"minReplicas": 10}}'
-
Apply
setup
for benchmark:ko apply -f test/performance/benchmarks/dataplane-probe/continuous/dataplane-probe-setup.yaml
-
Wait for above to stabilize
-
Attach your desired tags to the runs by editing the config map, see the
_example
stanza for how.kubectl edit cm config-mako
-
Apply the benchmark cron:
ko apply -f test/performance/benchmarks/dataplane-probe/continuous/dataplane-probe.yaml