1.16. PostgreSQL 데이터베이스에 액세스하여 문제 해결
1.16.1. 증상: 다중 클러스터 글로벌 허브가 있는 오류
다중 클러스터 글로벌 허브에 다양한 오류가 발생할 수 있습니다. 프로비저닝된 PostgreSQL 데이터베이스에 액세스하여 다중 클러스터 글로벌 허브 문제 해결에 도움이 될 수 있는 메시지를 볼 수 있습니다.
1.16.2. 문제 해결: PostgresSQL 데이터베이스 액세스
There are two ways to access the provisioned PostgreSQL database.
ClusterIP
서비스 사용oc exec -it multicluster-global-hub-postgres-0 -c multicluster-global-hub-postgres -n multicluster-global-hub -- psql -U postgres -d hoh # Or access the database installed by crunchy operator oc exec -it $(kubectl get pods -n multicluster-global-hub -l postgres-operator.crunchydata.com/role=master -o jsonpath='{.items..metadata.name}') -c database -n multicluster-global-hub -- psql -U postgres -d hoh -c "SELECT 1"
LoadBalancer
기본적으로 프로비저닝된
LoadBalancer
에 서비스 유형을 노출합니다.cat <<EOF | oc apply -f - apiVersion: v1 kind: Service metadata: name: multicluster-global-hub-postgres-lb namespace: multicluster-global-hub spec: ports: - name: postgres port: 5432 protocol: TCP targetPort: 5432 selector: name: multicluster-global-hub-postgres type: LoadBalancer EOF
다음 명령을 실행하여 인증 정보를 가져옵니다.
# Host oc get svc postgres-ha -ojsonpath='{.status.loadBalancer.ingress[0].hostname}' # Password oc get secrets -n multicluster-global-hub postgres-pguser-postgres -o go-template='{{index (.data) "password" | base64decode}}'
crunchy Operator가 프로비저닝한
LoadBalancer
에 서비스 유형을 노출합니다.oc patch postgrescluster postgres -n multicluster-global-hub -p '{"spec":{"service":{"type":"LoadBalancer"}}}' --type merge
다음 명령을 실행하여 인증 정보를 가져옵니다.
# Host oc get svc -n multicluster-global-hub postgres-ha -ojsonpath='{.status.loadBalancer.ingress[0].hostname}' # Username oc get secrets -n multicluster-global-hub postgres-pguser-postgres -o go-template='{{index (.data) "user" | base64decode}}' # Password oc get secrets -n multicluster-global-hub postgres-pguser-postgres -o go-template='{{index (.data) "password" | base64decode}}' # Database oc get secrets -n multicluster-global-hub postgres-pguser-postgres -o go-template='{{index (.data) "dbname" | base64decode}}'