Installa AlloyDB Omni su una VM

Seleziona una versione della documentazione:

Questa pagina descrive come eseguire installazioni a singola istanza di AlloyDB Omni su qualsiasi VM Linux che supporti i runtime dei container. Se hai bisogno di una configurazione multi-istanza di AlloyDB Omni, consulta Alta disponibilità e resilienza dei dati.

Prima di iniziare

Prima di installare AlloyDB Omni, assicurati di soddisfare i seguenti requisiti.

Pianificare l'installazione

Prima di installare AlloyDB Omni sulla VM:

  1. Leggi Pianificare l'installazione di AlloyDB Omni su una VM.
  2. Leggi Esegui AlloyDB Omni con accesso root o senza accesso root e completa i passaggi necessari per l'accesso root o senza accesso root a seconda dell'ambiente che scegli.

Scegliere un'opzione di download o installazione

Scegli una delle seguenti opzioni di download e installazione:

Media Percorsi di download e guide all'installazione Deployment in
Immagine Debian DockerHub (tag)
  • Docker, Podman. Puoi eseguire questi strumenti di containerizzazione come container in qualsiasi macchina virtuale (VM).
Immagine UBI (Red Hat) Catalogo dell'ecosistema Red Hat
  • ambiente Red Hat. Esegui questo comando come container.

Esegui AlloyDB Omni con o senza accesso root

Puoi eseguire AlloyDB Omni utilizzando Docker o Podman. Puoi eseguire questi motori di container con o senza privilegi di root. Rootful si riferisce all'esecuzione di Docker o Podman come utente root, mentre rootless si riferisce all'esecuzione di queste immagini container come utente non root o senza privilegi.

La modalità che scegli dipende dai requisiti e dalle preferenze che hai per l'ambiente. Se la semplicità è importante, rootful potrebbe essere la soluzione che fa per te. Se hai bisogno della sicurezza di un utente senza privilegi, rootless potrebbe essere la scelta giusta.

Se decidi di eseguire un ambiente rootful, devi decidere come gestire la mappatura degli utenti tra il container e la macchina host. In pratica, AlloyDB Omni esegue i processi come utente postgres, che ha un UID e un GID di 999. Ciò significa che hai due opzioni per gestire la mappatura degli utenti:

  • Non fare nulla. postgres continuerà a non essere mappato a nessun utente sulla macchina host.
  • Crea un utente e un gruppo di utenti con UID e GID di 999 in modo che postgres venga mappato a quell'utente e a quel gruppo di utenti.

Per gli ambienti rootless, postgres viene mappato a un sub-UID e un sub-GID a cui hanno accesso l'utente host e il gruppo di utenti (come definito nei file /etc/subuid e /etc/subgid). Ciò significa che non devi gestire la mappatura degli utenti.

(Senza root) Configura intervalli di sub-UID e sub-GID

  1. Se utilizzi RHEL, CentOS o Fedora, segui questi passaggi:

    1. Installa il programma di utilità a riga di comando iptables eseguendo il comando sudo dnf install -y iptables.
    2. Per qualsiasi versione di RHEL precedente alla 9, installa il pacchetto fuse-overlayfs eseguendo il comando sudo dnf install -y fuse-overlayfs.
  2. Se la tua immagine Linux non ha intervalli sub-UID e sub-GID configurati per l'utente senza privilegi, devi configurare questi intervalli per eseguire AlloyDB Omni senza root.

  3. Se utilizzi un sistema Debian, installa i file binari newuidmap e newgidmap.

    apt-get install -y uidmap
    
  4. Aggiungi una voce subuid per l'utente rootless.

    echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
    

    Sostituisci le seguenti variabili:

    • ROOTLESS_USER: l'utente con cui vuoi eseguire AlloyDB Omni.
    • SUB_UID_RANGE_START: il numero più basso dell'intervallo di sub-UID che vuoi registrare per il tuo utente.
    • SUB_UID_RANGE_COUNT: La quantità di sub-UID che vuoi registrare per il tuo utente. Questo valore deve essere almeno pari a 999.
  5. Aggiungi una voce subgid per l'utente rootless.

    echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
    

    Sostituisci le seguenti variabili:

    • ROOTLESS_USER: l'utente con cui vuoi eseguire AlloyDB Omni.
    • SUB_GID_RANGE_START: Il numero più basso dell'intervallo di sub-GID che vuoi registrare per il tuo utente.
    • SUB_GID_RANGE_COUNT: La quantità di sub-GID che vuoi registrare per il tuo utente. Questo valore deve essere almeno pari a 999.
  6. Se vuoi che l'istanza AlloyDB Omni venga eseguita mentre l'utente non è connesso, esegui il seguente comando.

    loginctl enable-linger ROOTLESS_USER
    

    Sostituisci la seguente variabile:

    • ROOTLESS_USER: l'utente con cui vuoi eseguire AlloyDB Omni.
  7. Se utilizzi Docker, esegui il seguente comando come ROOTLESS_USER:

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  8. Apri una nuova shell in modo che le modifiche a sub-UID e sub-GID diventino effettive.

Crea una directory in cui AlloyDB Omni archivia i dati

Se utilizzi un sistema di archiviazione che non si limita a eseguire AlloyDB Omni, puoi creare la directory AlloyDB Omni nel file system esistente del tuo dispositivo. In caso contrario, puoi creare un nuovo file system sul tuo dispositivo dedicato.

File system esistente

Docker

mkdir -p DATA_DIR

Docker

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Sostituisci le seguenti variabili:

  • DATA_DIR: il percorso della directory host in cui sono archiviati i dati.

Dispositivo dedicato

  1. Crea una directory sull'host in cui verrà montato il disco.

    mkdir -p MOUNT_POINT
    

    Sostituisci la seguente variabile:

    • MOUNT_POINT: percorso della directory di primo livello che deve contenere l'istanza AlloyDB Omni.
  2. Crea una tabella di partizione GPT con una singola partizione sul dispositivo disco.

    parted -s DEVICE_PATH mklabel gpt
    parted -s DEVICE_PATH mkpart primary 0% 100%

    Sostituisci la seguente variabile:

    • DEVICE_PATH: il percorso assegnato dal sistema operativo al dispositivo disco.
  3. Crea un file system sul dispositivo disco. Ti consigliamo di utilizzare il file system ext4 per AlloyDB Omni.

    mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
    

    Sostituisci le seguenti variabili:

    • FS_LABEL: l'etichetta del file system. La lunghezza massima di un'etichetta del file system ext4 è di 16 caratteri.
    • PARTITION_PATH: Percorso della partizione del disco utilizzata per archiviare i dati del container.
  4. Monta il dispositivo e crea una voce nel file /etc/fstab in modo che il disco venga montato dopo un riavvio.

    echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
    systemctl daemon-reload
    mount MOUNT_POINT

    Sostituisci le seguenti variabili:

    • FS_LABEL: l'etichetta del file system. La lunghezza massima di un'etichetta del file system ext4 è di 16 caratteri.
    • MOUNT_POINT: percorso della directory di primo livello che deve contenere l'istanza AlloyDB Omni.
  5. Crea una directory dei dati nel file system specifico del container.

    Rootful

    mkdir -p DATA_DIR
    

    Rootless

    mkdir -p DATA_DIR
    chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    Sostituisci le seguenti variabili:

    • DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
    • ROOTLESS_USER: se utilizzi un ambiente rootless, questo è l'utente a cui vuoi assegnare la proprietà della directory.
    • ROOTLESS_GROUP: Se utilizzi un ambiente rootless, questo è il gruppo a cui vuoi assegnare la proprietà della directory.

Crea il contenitore

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Sostituisci le seguenti variabili:

  • CONTAINER_NAME: il nome che hai utilizzato per la directory in Crea la directory in cui AlloyDB Omni archivia i dati.
  • NEW_PASSWORD: password assegnata all'utente postgres del nuovo contenitore dopo la sua creazione.
  • DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
  • HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.
  • IMAGE_TAG: utilizza 16.3.0 per l'ultima immagine Debian o 16.3.0-ubi per l'ultima immagine UBI.

Connettiti all'istanza

A seconda dell'ambiente, puoi connetterti all'istanza AlloyDB Omni localmente o da remoto.

Crea contatti locali

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Sostituisci la seguente variabile:

Connettersi da remoto

psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN

Sostituisci le seguenti variabili:

  • HOST_PORT: porta TCP utilizzata in Crea il container.
  • IP_ADDRESS_OR_FQDN: indirizzo IP o nome di dominio completo dell'host in cui è in esecuzione AlloyDB Omni.

Dopo aver eseguito questo comando, ti verrà chiesta la password dell'account postgres. Inserisci la password che hai utilizzato in Crea il container.

Passaggi successivi