Pular para o conteúdo principal

Implantar um cluster PostgreSQL

Baseado em: https://cloudnative-pg.io/documentation/preview/quickstart/#part-3-deploy-a-postgresql-cluster

Cluster

cluster.yml
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: cluster-postgres
namespace: default
spec:
instances: 3

storage:
# storageClass:
size: 4Gi

# managed:
# roles:
# - name: example
# ensure: present
# superuser: false
# passwordSecret:
# name: db-role-example-secret

Documentações dos resources:

Arquitetura do Cluster

O CloudNativePG suporta clusters baseados em replicação de streaming assíncrona e síncrona para gerenciar múltiplas réplicas hot standby dentro do mesmo cluster Kubernetes, com as seguintes especificações:​

  • Um primário, com múltiplas réplicas hot standby opcionais para alta disponibilidade. ​
  • Serviços disponíveis para aplicações:​
    • -rw: instância primária do cluster. ​
    • -ro: réplicas hot standby para cargas de trabalho de leitura (opcional). ​
    • -r: qualquer uma das instâncias para cargas de trabalho de leitura, incluindo a instância primária (opcional). ​
cluster-postgres-r.default.svc.cluster.local:5432
cluster-postgres-ro.default.svc.cluster.local:5432
cluster-postgres-rw.default.svc.cluster.local:5432

Referências:

Anotações Soltas
kubectl port-forward service/cluster-postgres-rw 5432
ssh -N -L 5432:localhost:5432 root@{}

Gerenciar Bancos de Dados

Referência: https://cloudnative-pg.io/documentation/1.25/declarative_database_management/#

Veja mais