Gestire i database

La sandbox GDC fornisce il servizio di database per testare e gestire i cluster di database.

Crea database

Per creare e gestire un cluster di database, vedi Creare e gestire un cluster di database.

Motori del database disponibili

GDC Sandbox supporta solo PostgreSQL e AlloyDB.

Utilizza la console GDC o Distributed Cloud CLI per creare cluster di database:

Console

  1. Nel menu principale, scegli Database Service.
  2. Fai clic su Crea cluster di database.
  3. Nella finestra di dialogo Scegli un motore di database, scegli un motore di database.

  4. Nella finestra di dialogo Configura il cluster, specifica l'ID cluster, la password e la versione del database. Puoi abilitare i backup e configurare il periodo di conservazione dei backup.

  5. Nella finestra di dialogo Configura l'istanza principale, specifica la CPU, la memoria e la capacità di archiviazione dell'istanza principale del cluster di database. Ti consigliamo di scegliere una memoria sufficiente per contenere la tabella più grande.

  6. Fai clic su Crea. La creazione del cluster di database può richiedere alcuni minuti. Controlla lo stato del cluster dalla pagina Panoramica del cluster. Lo stato passa da Creazione a Pronto quando il cluster è pronto.

gdcloud

  1. Prima di utilizzare Distributed Cloud CLI, installala e inizializzala. Poi, autenticati con la tua organizzazione.

  2. Esegui questo comando per creare un cluster di database:

    gdcloud database clusters create CLUSTER_NAME \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    Sostituisci le seguenti variabili:

    • CLUSTER_NAME con il nome del nuovo cluster.
    • DB_VERSION con la stringa di versione per il nuovo cluster. Ad esempio, POSTGRESQL_13 o ALLOYDBOMNI_15
    • ADMIN_PASSWORD con la password dell'amministratore per il nuovo cluster.
  3. Per ulteriori informazioni sulla configurazione delle risorse di CPU, memoria e spazio di archiviazione per il cluster di database, sulla configurazione del backup, sull'attivazione dell'alta disponibilità e su altre opzioni disponibili, esegui:

    gdcloud database clusters create --help
    

API

  1. Crea un file db-cluster-create.yaml con i contenuti

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    ---
    apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
    kind: DBCluster
    metadata:
      name: DBCLUSTER_NAME
      namespace: USER_PROJECT
    spec:
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DBCLUSTER_NAME
        version: "DB_VERSION"
        resources:
          memory: DB_MEMORY
          cpu: DB_CPU
          disks:
          - name: DataDisk
            size: DB_DATA_DISK
    

    Sostituisci le seguenti variabili:

    • DBCLUSTER_NAME, il nome del cluster di database.
    • USER_PROJECT, il nome del progetto utente in cui verrà creato il cluster di database.
    • BASE64_PASSWORD, la codifica Base64 della password dell'amministratore del database.
    • DBENGINE_NAME, il nome del motore del database. Questo è uno dei valori alloydbomni o postgresql.
    • DB_VERSION, la versione del motore del database.
    • DB_MEMORY, la quantità di memoria allocata al cluster di database, ad esempio 5Gi.
    • DB_CPU, la quantità di CPU allocate al cluster di database, ad esempio 2.
    • DB_DATA_DISK, quantità di spazio allocato al cluster di database, ad esempio 10 Gi.
  2. kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
    

Connettiti al database

Per impostazione predefinita, un cluster di database consente la connessione solo dall'interno del cluster utente e dello stesso progetto.

Per abilitare le connessioni a tutti i cluster di database nel tuo progetto da un altro progetto, consulta Abilitare le connessioni tra progetti.

Per connetterti al database da indirizzi IP esterni alla tua organizzazione GDC Sandbox, segui le istruzioni riportate in Connettersi a un cluster di database per attivare le connessioni esterne.

Puoi utilizzare sshuttle per connetterti al tuo database con un client di database locale come psql:

  1. Vai alla sezione Connettività della pagina Database Service per il cluster di database. Questa pagina include:

    • La password dell'account amministratore (il nome utente è dbsadmin)
    • Nome host e numero di porta dell'endpoint principale del cluster di database
    • Un comando psql per connettersi al cluster (per i cluster di database PostgreSQL e AlloyDB Omni)
    • Un link per scaricare il certificato dell'autorità di certificazione (CA) del cluster di database
  2. Scarica il certificato CA dalla console GDC nella sezione Connettività della pagina Database Service per il tuo cluster di database.

  3. Configura il client in modo che utilizzi il certificato CA per verificare il database. Per i client psql, imposta la variabile di ambiente PGSSLROOTCERT sul percorso del file del certificato e la variabile di ambiente PGSSLMODE in base alle tue preferenze:

        export PGSSLROOTCERT=path/to/accounts_cert.pem
        export PGSSLMODE="verify-full"
    
  4. Avvia un tunnel sicuro. Se hai un'istanza in esecuzione di sshuttle come descritto in Connettersi all'istanza, termina il processo.

        sshuttle -r zone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME --no-latency-control \
        --ssh-cmd 'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap' \
        10.200.0.0/16 --dns
    

    Sostituisci quanto segue con i valori forniti dal team del sandbox GDC:

    • GDC_SANDBOX_INSTANCE_NAME: il nome dell'istanza sandbox GDC.
    • PROJECT_NAME: il progetto contenente l'ambiente sandbox GDC.
    • ZONE: la zona che contiene l'ambiente sandbox GDC.
  5. Mentre il tunnel è attivo, esegui il comando utilizzando psql in un altro terminale

        PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

    Sostituisci le seguenti variabili:

    • DB_PASSWORD: la password dall'interfaccia utente della console.
    • DB_HOSTNAME: il nome host del database dalla console.
    • DB_PORT: il numero di porta del database dalla console.
    • DB_USERNAME: il nome utente del database dalla console.