New to KubeDB? Please start here.

Horizontal Scaling Overview

This guide will give you an overview of how KubeDB enterprise operator scales up/down the number of members of a Postgres instance.

Before You Begin

How Horizontal Scaling Process Works

The following diagram shows how KubeDB enterprise operator used to scale up the number of members of a Postgres cluster. Open the image in a new tab to see the enlarged version.

Horizontal scaling Flow
Fig: Horizontal scaling process of Postgres

The horizontal scaling process consists of the following steps:

  1. At first, a user creates a Postgres cr.

  2. KubeDB community operator watches for the Postgres cr.

  3. When it finds one, it creates a StatefulSet and related necessary stuff like secret, service, etc.

  4. Then, in order to scale the cluster, the user creates a PostgresOpsRequest cr with the desired number of members after scaling.

  5. KubeDB enterprise operator watches for PostgresOpsRequest.

  6. When it finds one, it halts the Postgres object so that the KubeDB community operator doesn’t perform any operation on the Postgres during the scaling process.

  7. Then KubeDB enterprise operator will add nodes in case of scale up or remove nodes in case of scale down.

  8. Then the KubeDB enterprise operator will scale the StatefulSet replicas to reach the expected number of replicas for the cluster.

  9. After successful scaling of the StatefulSet’s replica, the KubeDB enterprise operator updates the spec.replicas field of Postgres object to reflect the updated cluster state.

  10. After successful scaling of the Postgres replicas, the KubeDB enterprise operator resumes the Postgres object so that the KubeDB community operator can resume its usual operations.

In the next doc, we are going to show a step by step guide on scaling of a Postgres cluster using Horizontal Scaling.