Delegate Benchmarking for K8s Deployments

Hello Everybody.

Introduction

This article defines the details of Benchmarking our First Gen Harness Delegates for K8s Deployments. This was done primarily to get the numbers for how many k8’s parallel deployment can be done on a single delegate.

Summary

The delegate configuration used for this benchmark was the default which is currently provided by Harness out of the box.

1 core and 4Gi memory

To Benchmark the delegate, we split the test in 2 phases. We started by creating a pipeline for this activity where we had exactly 25 K8’s Rolling Deployment Steps and each one of them was used to do the deployment in different infrastructure. As per our testing we could see that all 25 deployments were successful and the Memory/CPU limit were also not reached to maximum for the delegate machine.

Shifting to phase 2, we increased the load on the delegate to execute 50 K8’s Rolling Deployment Steps in the Pipeline, where we noticed that all these 50 were success as well. But we also noticed that as soon as we increased the load > 50, the CPU usage crossed the 1 core limit and this led to some of the parallel steps failing.

With these tests, we came to a conclusion that on one delegate with the config 1 core and 4Gi memory) we were able to execute 50 K8’s rolling deployment. Keep in mind these were not heavy deployments and were tested using the basic deployment of an Nginx Image.

4 Likes