Getting started with Red Hat OpenShift Service on AWS (ROSA)

Learn how to get started on Red Hat® OpenShift® Service on AWS, including how to use AWS Security Token Service (STS) to deploy a cluster.

Learn how to get started on Red Hat® OpenShift® Service on AWS, including how to use AWS Security Token Service (STS) to deploy a cluster.

Autoscaling in ROSA

10 mins

Autoscaling can refer to one of the following:

  • Horizontal Pod Autoscaler - whereby Kubernetes will automatically create more or remove pods of an application to handle an increase/decrease in workload, though total resources available to the cluster will remain unchanged.
  • Cluster Autoscaler - This is where more worker nodes will be added or removed from the cluster based on pods failing due to insufficient resources thereby affecting the total number of resources available.

We will focus on the second definition as it relates to Red Hat® OpenShift® Service on AWS (ROSA).

NOTE: Cluster autoscaling can also be enabled at cluster creation time using the --enable-autoscaling flag. This will enable autoscaling on the "Default" machine pool. It can also be enabled when creating a machine pool.

What will you learn?

  • How to add or remove worker nodes

What do you need before starting?

Setting up cluster autoscaling

  1. Autoscaling is set per machine pool definition. To find out which machine pools are available in our cluster run:

    rosa list machinepools -c <cluster-name>

    You will see a response like:

      ID         AUTOSCALING  REPLICAS  INSTANCE TYPE  LABELS     TAINTS    AVAILABILITY ZONES
    Default    No          2       m5.xlarge                           us-east-1a
    
  2. Now run the following to add autoscaling to that machine pool.

    rosa edit machinepool -c <cluster-name> --enable-autoscaling <machinepool-name> --min-replicas=<num> --max-replicas=<num>

    For example:

    rosa edit machinepool -c my-rosa-cluster --enable-autoscaling Default --min-replicas=2 --max-replicas=4

    This will create an autoscaler for the worker nodes to scale between 2 and 4 nodes depending on the resources.

    The cluster autoscaler increases the size of the cluster when there are pods that failed to schedule on any of the current nodes due to insufficient resources or when another node is necessary to meet deployment needs. The cluster autoscaler does not increase the cluster resources beyond the limits that you specify. The cluster autoscaler decreases the size of the cluster when some nodes are consistently not needed for a significant period, such as when it has low resource use and all of its important pods can fit on other nodes.

  3. This can also be done via the OpenShift® Cluster Manager (OCM) user interface (UI). You might have noticed a checkbox at machine pool creation time for "Enable autoscaling".

  4. Lastly, autoscaling can also be added to an existing machine pool via the UI by going to the "Machine pools" tab in OCM for your cluster > clicking on the "three dots" at the right for the machine pool > "Scale" > "Enable autoscaling".

  5. Run the following to confirm that autoscaling was added.

    rosa list machinepools -c <cluster-name>

    You will see a response like:

      ID         AUTOSCALING  REPLICAS  INSTANCE TYPE  LABELS     TAINTS    AVAILABILITY ZONES
    Default    Yes          2-4       m5.xlarge                           us-east-1a
    

You are now ready to upgrade your cluster via the CLI, OCM user interface, or through automated upgrades.

 

This learning path is for operations teams or system administrators

Developers may want to check out developers.redhat.com.

Get started on developers.redhat.com