Integrações — PostgreSQL
Visão geral
O chart tdp-postgresql disponibiliza um servidor PostgreSQL interno ao cluster. Charts como OpenMetadata, Airflow, Ranger, Superset, Hive Metastore e JupyterHub podem utilizá-lo como base de dados de metadados externa via TDP-Settings.externalDatabase. O CloudBeaver utiliza o PostgreSQL como base de dados de metadados externa (via tdp-cloudbeaver.database.*). O Trino pode consultá-lo como fonte de dados via conector JDBC.
A integração com cada componente é descrita na página de integrações do respectivo chart:
- OpenMetadata: consulte Configuração do OpenMetadata — secção Base de dados (PostgreSQL).
- Airflow: consulte Configuração do Airflow — secção Configuração da base de dados.
- Ranger: consulte Configuração do Ranger — secção Base de dados e auditoria.
- Superset: consulte Configuração do Superset — secção PostgreSQL de metadados.
- Hive Metastore: consulte Configuração do Hive Metastore — secção Base de dados.
- JupyterHub: consulte Configuração do Jupyter — secção Base de dados.
- CloudBeaver: consulte Configuração do CloudBeaver — secção Base de dados.
- Trino: consulte Integrações — Trino — secção PostgreSQL.
Endereço do serviço interno
Após a instalação, o PostgreSQL fica acessível dentro do cluster pelo nome DNS:
<RELEASE_NAME>.<NAMESPACE>.svc.cluster.local:5432
Substitua <RELEASE_NAME> pelo nome do release Helm e <NAMESPACE> pelo namespace onde o chart foi instalado.
Obter a palavra-passe do admin
A palavra-passe do usuário postgres é gerada automaticamente pelo chart e armazenada num Kubernetes Secret:
export POSTGRES_PASSWORD=$(kubectl get secret --namespace <NAMESPACE> <RELEASE_NAME> \
-o jsonpath="{.data['postgres-password']}" | base64 -d)
O nome do Secret corresponde ao nome do release (ex.: tdp-postgresql), com a chave postgres-password.
Ligar a partir do interior do cluster
Para testes ou diagnósticos a partir de um pod temporário no mesmo namespace:
kubectl run <RELEASE_NAME>-client --rm --tty -i --restart='Never' \
--namespace <NAMESPACE> \
--image docker.io/bitnamilegacy/postgresql:17.5.0-debian-12-r20 \
--env="PGPASSWORD=$POSTGRES_PASSWORD" \
--command -- psql -h <RELEASE_NAME> -p 5432 -U postgres -d postgres
Ligar a partir do exterior do cluster (port-forward)
Para acesso temporário a partir do exterior do cluster — por exemplo, de uma estação de trabalho com o cliente psql:
kubectl port-forward --namespace <NAMESPACE> svc/<RELEASE_NAME> 5432:5432
psql -h 127.0.0.1 -p 5432 -U postgres -d postgres
O port-forward é adequado para testes e diagnóstico. Não é um método de acesso permanente.
Validação
kubectl -n <NAMESPACE> get pods
kubectl -n <NAMESPACE> get svc
kubectl -n <NAMESPACE> get pvc
kubectl -n <NAMESPACE> get events --sort-by=.lastTimestamp