New to KubeDB? Please start here.
PostgreSQL Volume Expansion
This guide will give an overview on how KubeDB Ops-manager operator expand the volume of Postgres components such as Standalone, HA cluster etc.
Before You Begin
- You should be familiar with the following
KubeDBconcepts:
Volume Expansion Working Procedure
The following diagram shows how KubeDB Ops-manager operator expand the volumes of Postgres database components. Open the image in a new tab to see the enlarged version.
The Volume Expansion process consists of the following steps:
At first, a user creates a
PostgresCustom Resource (CR).KubeDBcommunity operator watches thePostgresCR.When the operator finds a
PostgresCR, it creates aPetSetand related necessary stuffs like pods, pvc, secret, service etc.Each PetSet creates a Persistent Volume according to the Volume Claim Template provided in the Petset configuration. This Persistent Volume will be expanded by the
KubeDBOps-manager operator.Then, in order to expand the volume of the various components (Standalone, HA cluster etc.) of the
Postgresdatabase, the user creates aPostgresOpsRequestCR with desired information.KubeDBOps-manager operator watches thePostgresOpsRequestCR.When it finds a
PostgresOpsRequestCR, it halts thePostgresobject which is referred from thePostgresOpsRequest. So, theKubeDBProvisioner operator doesn’t perform any operations on thePostgresobject during the volume expansion process.Then the
KubeDBOps-manager operator will expand the persistent volume to reach the expected size defined in thePostgresOpsRequestCR.After the successful expansion of the volume of the related PetSet Pods the
KubeDBOps-manager operator updates the new volume size in thePostgresobject to reflect the updated state.After the successful Volume Expansion of the
Postgrescomponents, theKubeDBOps-manager operator resumes thePostgresobject so that theKubeDBProvisioner operator resumes its usual operations.
In the next docs, we are going to show you a step-by-step guide on Volume Expansion of various Postgres database components using PostgresOpsRequest CRD.































