Installa AlloyDB Omni utilizzando i container

Seleziona una versione della documentazione:

Questa pagina descrive come eseguire installazioni di singole istanze di AlloyDB Omni su qualsiasi VM Linux che supporti i runtime dei container. Se hai bisogno di una configurazione multiistanza di AlloyDB Omni, consulta Alta affidabilità e resilienza dei dati.

Prima di iniziare

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

Pianifica l'installazione

Prima di installare AlloyDB Omni sulla VM:

  1. Leggi Pianificare l'installazione di AlloyDB Omni su una VM.
  2. Leggi Eseguire AlloyDB Omni con o senza root e completa tutti i passaggi necessari per la modalità con o senza root a seconda dell'ambiente scelto.

Scegli un'opzione di download o installazione

Scegli una delle seguenti opzioni di download e installazione:

Media Posizioni di download e guide all'installazione Deployment su
Immagine Debian DockerHub (tag)
  • Docker, Podman. Puoi eseguire questi strumenti di containerizzazione come container in qualsiasi macchina virtuale (VM).
Immagine UBI (Red Hat) Red Hat Ecosystem Catalog
  • Ambiente Red Hat. Esegui questa operazione come container.

Esegui AlloyDB Omni con o senza root

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

La modalità scelta dipende dai requisiti e dalle preferenze dell'ambiente. Se la semplicità è importante, la modalità con root potrebbe essere la scelta giusta per te. Se hai bisogno della sicurezza di un utente senza privilegi, la modalità senza root potrebbe essere la scelta giusta.

Se decidi di eseguire un ambiente con root, devi decidere come gestire il mapping 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 il mapping 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 senza root, postgres viene mappato a un sub-UID e a un sub-GID a cui l'utente e il gruppo di utenti host hanno accesso (come definito nei file /etc/subuid e /etc/subgid). Ciò significa che non devi gestire il mapping degli utenti.

(Senza root) Configura gli 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 l'immagine Linux non ha intervalli di 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.

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

    echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" | sudo tee -a /etc/subuid
    

    Sostituisci le seguenti variabili:

    • ROOTLESS_USER: utente con cui vuoi eseguire AlloyDB Omni.
    • SUB_UID_RANGE_START: numero inferiore dell'intervallo di sub-UID che vuoi registrare per l'utente.
    • SUB_UID_RANGE_COUNT: quantità di sub-UID che vuoi registrare per l'utente. Questo valore deve essere almeno 999.
  5. Aggiungi una voce subgid per l'utente senza root.

    echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" | sudo tee -a /etc/subgid
    

    Sostituisci le seguenti variabili:

    • ROOTLESS_USER: utente con cui vuoi eseguire AlloyDB Omni.
    • SUB_GID_RANGE_START: numero inferiore dell'intervallo di sub-GID che vuoi registrare per l'utente.
    • SUB_GID_RANGE_COUNT: quantità di sub-GID che vuoi registrare per l'utente. Questo valore deve essere almeno 999.
  6. Se vuoi che l'istanza AlloyDB Omni sia in esecuzione mentre l'utente non ha eseguito l'accesso, esegui il seguente comando.

    sudo loginctl enable-linger ROOTLESS_USER
    

    Sostituisci la seguente variabile:

    • ROOTLESS_USER: 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 per applicare le modifiche di sub-UID e sub-GID.

Crea una directory in cui AlloyDB Omni archivia i dati

Se utilizzi un sistema di archiviazione che fa più che eseguire AlloyDB Omni, puoi creare la directory AlloyDB Omni sul file system esistente del dispositivo. In caso contrario, puoi creare un nuovo file system sul tuo dispositivo dedicato.

File system esistente

Docker

sudo mkdir -p DATA_DIR

Docker

mkdir -p DATA_DIR

Podman

sudo mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Sostituisci le seguenti variabili:

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

Dispositivo dedicato

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

    sudo 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 delle partizioni gpt con una singola partizione sul dispositivo disco.

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

    Sostituisci la seguente variabile:

    • DEVICE_PATH: 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.

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

    Sostituisci le seguenti variabili:

    • FS_LABEL: 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" | sudo tee -a /etc/fstab
    sudo systemctl daemon-reload
    sudo mount MOUNT_POINT

    Sostituisci le seguenti variabili:

    • FS_LABEL: 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 di dati nel file system specifico del container.

    Con root

    sudo mkdir -p DATA_DIR
    

    Senza root

    sudo mkdir -p DATA_DIR
    sudo chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    Sostituisci le seguenti variabili:

    • DATA_DIR: percorso della directory host in cui sono archiviati i dati.
    • ROOTLESS_USER: se utilizzi un ambiente senza root, questo è l'utente di cui vuoi che sia proprietario della directory.
    • ROOTLESS_GROUP: se utilizzi un ambiente senza root, questo è il gruppo di cui vuoi che sia proprietario della directory.

Crea il container

Docker

sudo 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

sudo 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: nome utilizzato per la directory in Crea una directory in cui AlloyDB Omni archivia i dati.
  • NEW_PASSWORD: password assegnata all'utente postgres del nuovo container dopo la sua creazione.
  • DATA_DIR: percorso della directory host in cui sono archiviati i dati.
  • HOST_PORT: 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

sudo docker exec -it CONTAINER_NAME psql -U postgres

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Podman

sudo podman exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Sostituisci la seguente variabile:

Connettiti 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 viene chiesta la password dell'account postgres. Inserisci la password che hai utilizzato in Crea il container.

Passaggi successivi