Skip to content

Creating a PostgreSQL Cluster

This tutorial will walk you through the steps to install and use the PostgreSQL Operator. This is used to manage highly available PostgreSQL clusters on Kubernetes

Before starting this tutorial, make sure you have completed all the steps in the creating a kubernetes cluster tutorial

Install the PostgreSQL Operator

First, we'll install the PostgreSQL Operator:

kubectl create namespace pgo 
kubectl apply -f https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.6.0/installers/kubectl/postgres-operator.yml 

Install the pgo Client

When the PostgreSQL Operator install is finished, run the client setup script:

curl https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.6.0/installers/kubectl/client-setup.sh > client-setup.sh 
chmod +x client-setup.sh 

This will download the pgo client and provide instructions on how to use it in your environment. It will request the addition of certain variables, which will look something like:

export PGOUSER="${HOME?}/.pgo/pgo/pgouser" 
export PGO_CA_CERT="${HOME?}/.pgo/pgo/client.crt" 
export PGO_CLIENT_CERT="${HOME?}/.pgo/pgo/client.crt" 
export PGO_CLIENT_KEY="${HOME?}/.pgo/pgo/client.key" 
export PGO_APISERVER_URL='https://127.0.0.1:8443' 
export PGO_NAMESPACE=pgo 

copy the variables as they are printed in ypur terminal and put them in your ~/.bashrc file on linux or in your ~/.bash_profile on mac and run source ~/.bashrc or ~/.bash_profile respectively

Post-Installation Setup

The PostgreSQL Operator is installed to the pgo namespace. First, check that the Kubernetes Deployment of the Operator exists and is healthy:

kubectl -n pgo get deployments 

Next, make sure the Pods that run the Operator are operational:

kubectl -n pgo get pods 

To communicate with the PostgreSQL Operator API server, you need to set up a port forward to your local environment. You can do this by opening a new terminal window and running the following:

kubectl -n pgo port-forward svc/postgres-operator 8443:8443 

Now go back to your original terminal window and verify your connection to the PostgreSQL Operator:

pgo version 

Creating a PostgreSQL Cluster

This type of istall creates a pgo namespace, from which the PostgreSQL Operator manages PostgreSQL clusters. We'll start by creating a PostgreSQL cluster called leafdb:

pgo create cluster -n pgo leafdb 

It may take a while for the cluster to be provisioned. You can see the cluster's status by using the pgo test command:

pgo test -n pgo leafdb 

This test command gives you the basic information to connect to your PostgreSQL cluster from inside your Kubernetes environment. For more detailed information, enter the following:

pgo show cluster -n pgo leafdb 

You have now created a PostgreSQL cluster. For more information on how to use the PostgreSQL Operator visit https://postgres-operator.readthedocs.io/en/latest/