Get up to 50% off on CKA, CKAD, CKS, KCNA, KCSA exams and courses!

OpenShift 4: Pushing my cluster to the limit

When I involved in the design of Red Hat OpenShift 4 platform for customer deployment, the common question coming from the customer was how much my cluster can take the load, how many object my cluster can take and ultimately how I can push my cluster to the limit.

There is no magic number to this, each cluster in each specific environment will give different behaviour and result of the performance due to multiple factors (such as network performance, cpu capacity and capability, etc).

There are many ways of load testing (or soak testing) the cluster. Here we are going to talk about the cluster loader .

Cluster loader works by creating object defined by the user and the same time measuring performance metrics (from the OpenShift monitoring Grafana dashboard).

The cluster loader can be executed by running a origin-tests container image:

#> podman pull quay.io/openshift/origin-tests:4.9

There are built-in test suite, as an example:

#> podman run -v ${LOCAL_KUBECONFIG}:/root/.kube/config:z -i quay.io/openshift/origin-tests:4.9 /bin/bash -c 'export KUBECONFIG=/root/.kube/config && openshift-tests run-test "[sig-scalability][Feature:Performance] Load cluster should populate the cluster [Slow][Serial] [Suite:openshift]"'

We also can set cluster loader configuration YAML file to suite our need, as an example to set the tuning set (stepping, delay etc):

tuningsets:
    - name: default
      pods:
        stepping:
          stepsize: 5
          pause: 0 s
        rate_limit:
          delay: 0 ms

Once we have the test result, we now can have a better view of how much our cluster can take. This also give us some hint if we need to give more resource to the cluster.

It is recommended to extend this with application load testing as well. It is a peace of mind to know what is the maximum load the cluster can take with the given resource with the maximum object deployed while application is running at maximum capacity.

Therefore, we can do a well informed capacity planning and expansion when required.

Share :

Related Posts

Kubernetes vs OpenShift – 15 Facts You Should Know

Kubernetes vs OpenShift – 15 Facts You Should Know

Welcome back to the OpenShift Bootcamp series. In this article we will see the difference between Kubernetes and OpenShift . Please note, during the …

What is OpenShift

What is OpenShift

Welcome back to the OpenShift BootCamp series. In this article you will learn what OpenShift is and why we are using OpenShift. We will also learn the …

Introduction to Container Fundamental

Let’s learn about, Traditional VM based deployment Challenges Container based deployment Advantages of Containers Use cases Nived Velayudhan …

How to Fix a Failed PV in OpenShift Cluster

How to Fix a Failed PV in OpenShift Cluster

Image : https://premierevanlines.com There are several cases a PV (PersistentVolume) appear as Failed in OpenShift or Kubernetes cluster. Once of the …

How to Label a Namespace in Openshift or Kubernetes

How to Label a Namespace in Openshift or Kubernetes

Image : joc.com Labeling an object in OpenShift or Kubernetes is an awesome method to organize, group, or select API objects. Labels can be used to …