Esegui e connettiti ad AlloyDB Omni

Questa pagina descrive come eseguire e connetterti ad AlloyDB Omni dopo averlo installato sulla tua macchina o eseguito il deployment nel tuo cluster Kubernetes.

Prima di iniziare

Single-server

La maggior parte dei comandi in questa pagina utilizza la CLI di AlloyDB Omni.

Per installare questo strumento a riga di comando sulla tua macchina, consulta Installare l'interfaccia a riga di comando AlloyDB Omni.

Kubernetes

Per eseguire le attività descritte in questa pagina, devi installare l'operatore Kubernetes Omni di AlloyDB sul tuo cluster Kubernetes.

Le istruzioni specifiche di Kubernetes riportate in questa pagina presuppongono una conoscenza di base dell'utilizzo di Kubernetes.

Esegui AlloyDB Omni

Le procedure utilizzate per eseguire AlloyDB Omni dipendono dal fatto che AlloyDB Omni venga eseguito in un contenitore su un singolo server o su un cluster Kubernetes. Questa sezione suddivide le istruzioni tra questi stili di deployment.

Single-server

L'installazione di AlloyDB Omni configura un servizio di sistema chiamato alloydb-dataplane che viene avviato ogni volta che la macchina si avvia.

Per il controllo e il monitoraggio di base di AlloyDB Omni, utilizza il comando sudo alloydb, come mostrato nelle sezioni seguenti.

Kubernetes

Per controllare e monitorare AlloyDB Omni, aggiorna i manifest del tuo cluster Kubernetes, come mostrato nelle sezioni seguenti.

Avvia AlloyDB Omni

Single-server

sudo alloydb database-server start

Per eseguire una connessione di prova, vedi Eseguire la connessione utilizzando il contenitorepsql.

Kubernetes

Avvia un cluster di database fermato impostando isStopped su false nella definizione del manifest.

Puoi eseguire questa operazione sulla riga di comando utilizzando kubectl:

kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample \
-p '{"spec":{"primarySpec":{"isStopped":false}}}' --type=merge

Controllare lo stato di AlloyDB Omni

Single-server

sudo alloydb database-server status

Kubernetes

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME

Sostituisci DB_CLUSTER_NAME con il nome del tuo cluster di database.

Interrompi AlloyDB Omni

Single-server

sudo alloydb database-server stop

Kubernetes

Per arrestare un cluster di database, imposta isStopped su true nella definizione del manifest.

Puoi eseguire questa operazione sulla riga di comando utilizzando kubectl:

kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample -p '{"spec":{"primarySpec":{"isStopped":true}}}' --type=merge

Disattivare l'avvio all'avvio

L'esecuzione del seguente comando impedisce ad AlloyDB Omni di avviarsi automaticamente all'avvio della macchina.

Single-server

sudo systemctl disable alloydb-dataplane

Kubernetes

Questa attività non si applica quando utilizzi l'operatore Kubernetes AlloyDB Omni.

Riattivare l'avvio all'avvio

Single-server

sudo systemctl enable alloydb-dataplane

Kubernetes

Questa attività non si applica quando utilizzi l'operatore Kubernetes AlloyDB Omni.

Connettiti ad AlloyDB Omni in esecuzione su un singolo server

Il contenitore AlloyDB Omni include una propria copia di psql che ti consente di aprire una sessione di shell SQL interattiva con il relativo server di database.

Puoi anche connetterti ad AlloyDB Omni dall'esterno del contenitore utilizzando il software compatibile con PostgreSQL che preferisci.

Per informazioni su come connettersi a un cluster di database AlloyDB Omni in esecuzione su un cluster Kubernetes, consulta Connettersi ad AlloyDB Omni in esecuzione su Kubernetes.

Connettiti utilizzando psql in container

Per connetterti al server del database AlloyDB Omni utilizzando la sua copia con contenitore di psql, esegui il seguente comando:

Single-server

docker exec -it pg-service psql -h localhost -U postgres

Questo comando ti connette al server con il ruolo utente postgres e mostra un prompt dei comandi postgres=#. Ora puoi eseguire comandi psql e query SQL.

Per uscire da psql, esegui il comando \q.

Eseguire la connessione utilizzando le tue applicazioni

Qualsiasi applicazione che funziona con PostgreSQL può funzionare anche con AlloyDB Omni, senza alcuna modifica.

Per connetterti al server database AlloyDB Omni, utilizza qualsiasi client o libreria di codice compatibile con PostgreSQL per connetterti alla porta 5432, la porta del server database PostgreSQL predefinita, della macchina in cui è in esecuzione AlloyDB Omni.

Questo funziona perché il contenitore AlloyDB Omni espone la propria porta5432 alla stessa porta della macchina su cui è in esecuzione.

Dopo aver eseguito la connessione al server database, puoi definire, eseguire query e modificare i database utilizzando query DML e SQL mediante protocolli di comunicazione PostgreSQL standard.

Poiché AlloyDB Omni viene eseguito nel tuo ambiente, puoi controllare la modalità di connessione ad AlloyDB Omni. Ciò include l'autorizzazione o la limitazione dell'accesso di rete a questo servizio in base alle esigenze dell'applicazione, proprio come faresti con un normale server PostgreSQL.

Connettiti ad AlloyDB Omni in esecuzione su Kubernetes

L'operatore AlloyDB Omni Kubernetes consente le connessioni al cluster di database dall'interno dello stesso cluster Kubernetes, eventualmente utilizzando certificati per l'autenticazione.

Connettiti utilizzando psql preinstallato

Puoi effettuare una connessione di prova utilizzando un client psql già installato sul pod che esegue il database.

Per farlo, esegui i seguenti comandi:

export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- /bin/psql -h localhost -U postgres

Sostituisci DB_CLUSTER_NAME con il nome del tuo cluster di database. Si tratta dello stesso nome del cluster di database dichiarato quando lo hai creato.

Dopo aver inserito il comando, il server di database ti chiede una password. Inserisci la password di cui hai fornito la versione con codifica base64 come secret Kubernetes durante la creazione del cluster del database. Ad esempio, se hai creato il cluster di database con un segreto Q2hhbmdlTWUxMjM=, la password di accesso da utilizzare qui è ChangeMe123.

AlloyDB Omni Operator ti connette al server come ruolo postgres dell'utente e mostra un prompt dei comandi postgres=#. Ora puoi eseguire comandi psql e query SQL.

Per uscire da psql, esegui il comando \q.

Connettiti da un pod separato nello stesso cluster

Per impostazione predefinita, il pod che esegue il cluster di database AlloyDB Omni consente le connessioni dall'interno dello stesso cluster Kubernetes. Come best practice, consigliamo di proteggere tutte le connessioni al cluster di database utilizzando TLS.

Per fornire il tuo certificato TLS del server, specifica un segreto del certificato durante la configurazione del cluster di database. Se non specifichi un segreto del certificato, AlloyDB Omni Kubernetes Operator ne crea uno per te in base a un certificato firmato da un'autorità di certificazione autofirmata. In entrambi i casi, puoi richiedere al pod client del database di richiedere la convalida del certificato su ogni connessione, garantendo la sicurezza TLS.

Per stabilire connessioni al database sicure tramite TLS, esegui le seguenti azioni:

  • Nel manifest che definisce il pod che esegue le connessioni client, specifica un segreto del certificato TLS. Può essere uno dei seguenti:

    • Un secret del certificato TLS che hai già creato nel cluster Kubernetes. Per ulteriori informazioni sull'utilizzo dei secret dei certificati TLS in Kubernetes, consulta Secret TLS.

    • Il segreto del certificato predefinito creato per te dall'operatore Kubernetes Omni di AlloyDB, denominato DB_CLUSTER_NAME-ca-cert, se non specifichi un segreto TLS nel manifest del cluster di database.

  • Ogni volta che il pod client si connette al cluster del database, deve definire le seguenti variabili di ambiente prima di stabilire la connessione:

    • Imposta PGSSLMODE su "verify-ca".

    • Imposta PGSSLROOTCERT sul percorso assoluto, nel file system del pod client, del file ca.crt pertinente.

Il seguente manifest di esempio mostra come configurare un pod che installa l'immagine PostgreSQL ufficiale, che include il client a riga di comando psql. L'esempio presuppone che non specifichi alcuna configurazione del token segreto TLS nel manifest che definisce il cluster di database. Pertanto, l'operatore Kubernetes AlloyDB Omni utilizza il segreto TLS predefinito, denominato dbs-al-cert-DB_CLUSTER_NAME.

apiVersion: v1
kind: Pod
metadata:
  name: postgres
spec:
  containers:
  - image: "docker.io/library/postgres:latest"
    command:
      - "sleep"
      - "604800"
    imagePullPolicy: IfNotPresent
    name: db-client
    volumeMounts:
    - name: ca-cert
      mountPath: "/DB_CLUSTER_NAME-ca-cert"
      readOnly: true
  volumes:
  - name: ca-cert
    secret:
      secretName: dbs-al-cert-DB_CLUSTER_NAME
  restartPolicy: Always

Sostituisci DB_CLUSTER_NAME con il nome del tuo cluster di database. Si tratta dello stesso nome del cluster di database dichiarato quando lo hai creato.

Ora puoi utilizzare il pod per collegarti in modo sicuro al tuo cluster di database seguendo i passaggi riportati di seguito:

  1. Determina l'indirizzo IP interno del cluster di database:

    kubectl get dbclusters.alloydbomni.dbadmin.goog

    L'output è simile al seguente:

    NAME              PRIMARYENDPOINT   PRIMARYPHASE   DBCLUSTERPHASE
    DB_CLUSTER_NAME   IP_ADDRESS        Ready          DBClusterReady
    

    Prendi nota di IP_ADDRESS e utilizzalo nel passaggio successivo.

  2. Utilizza psql per connetterti al cluster dal pod client, impostando le variabili di ambiente che attivano e richiedono la verifica del certificato TLS:

    kubectl exec -it postgres -- bash
    PGSSLMODE="verify-ca" PGSSLROOTCERT=/DB_CLUSTER_NAME-ca-cert/ca.crt psql -h IP_ADDRESS -p 5432 -U postgres -d postgres

    Sostituisci IP_ADDRESS con l'indirizzo IP interno che hai determinato nel passaggio precedente.

Passaggi successivi