Installa AlloyDB Omni su una VM

Questa pagina descrive come eseguire installazioni di singole istanze di AlloyDB Omni su qualsiasi VM Linux che supporti i runtime dei contenitori. Se hai bisogno di una configurazione multi-istanza di AlloyDB Omni, consulta Disponibilità elevata e resilienza dei dati.

Prima di iniziare

Prima di installare AlloyDB Omni sulla VM, segui questi passaggi:

  1. Leggi Pianifica l'installazione di AlloyDB Omni su una VM.
  2. Leggi Eseguire AlloyDB Omni con o senza privilegi di root e completa i passaggi necessari per l'esecuzione con o senza privilegi di root, a seconda dell'ambiente scelto.

Esegui AlloyDB Omni con o senza privilegi di root

Puoi eseguire AlloyDB Omni utilizzando Docker o Podman. Entrambi questi motori dei container possono essere eseguiti come con accesso root o senza accesso root. Con root si intende l'esecuzione di Docker o Podman come utente root, mentre con senza root si intende l'esecuzione come utente non root o senza privilegi.

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

Se decidi di eseguire un ambiente con accesso root, devi decidere come gestire la mappatura degli utenti tra il contenitore 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 ospitante.
  • Crea un utente e un gruppo di utenti con UID e GID di 999 in modo che postgres si associ a quell'utente e a quel gruppo di utenti.

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

(Senza root) Configura gli intervalli di UID e GID secondari

Se l'immagine Linux non ha già intervalli UID e GID secondari configurati per l'utente senza privilegi, devi configurarli per eseguire AlloyDB Omni senza root.

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

    apt-get install -y uidmap
    
  2. Aggiungi una voce subuid per l'utente senza privilegi di root.

    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: numero inferiore dell'intervallo di sub-UID che vuoi registrare per l'utente.
    • SUB_UID_RANGE_COUNT: la quantità di UID secondari che vuoi registrare per l'utente. Questo valore deve essere almeno pari a 999.
  3. Aggiungi una voce subgid per l'utente senza privilegi di root.

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

    Sostituisci le seguenti variabili:

    • ROOTLESS_USER: utente con cui vuoi eseguire AlloyDB Omni.
    • SUB_GID_RANGE_START: numero inferiore dell'intervallo di GID secondari che vuoi registrare per l'utente.
    • SUB_GID_RANGE_COUNT: la quantità di GID secondari che vuoi registrare per l'utente. Questo valore deve essere almeno pari a 999.
  4. Se utilizzi Docker, esegui il seguente comando come ROOTLESS_USER.

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  5. Se utilizzi Podman, consenti all'utente di eseguire i servizi senza aver eseguito l'accesso.

    loginctl enable-linger ROOTLESS_USER
    

    Sostituisci la seguente variabile:

    • ROOTLESS_USER: l'utente con cui vuoi eseguire AlloyDB Omni.
  6. Apri una nuova shell per applicare le modifiche ai sub-UID e ai sub-GID.

Crea la directory in cui AlloyDB Omni memorizza 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: percorso della directory host in cui sono memorizzati 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 delle partizioni 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: 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: etichetta per il file system. La lunghezza massima di un'etichetta del file system ext4 è di 16 caratteri.
    • PARTITION_PATH: percorso della partizione del disco utilizzata per memorizzare i dati del contenitore.
  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: etichetta per il 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 contenitore.

    Rootful

    mkdir -p DATA_DIR
    

    Rootless

    mkdir -p DATA_DIR
    chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    Sostituisci le seguenti variabili:

    • DATA_DIR: percorso della directory host in cui sono memorizzati i dati.
    • ROOTLESS_USER: se utilizzi un ambiente senza utente amministratore, questo è l'utente che vuoi che possieda la directory.
    • ROOTLESS_GROUP: se utilizzi un ambiente senza radici, questo è il gruppo che vuoi che possieda la 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:latest

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:latest

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:latest

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:latest

Sostituisci le seguenti variabili:

  • CONTAINER_NAME: il nome utilizzato per la directory in Creare la directory in cui AlloyDB Omni memorizza i dati.
  • NEW_PASSWORD: password assegnata all'utentepostgres del nuovo contenitore dopo la sua creazione.
  • DATA_DIR: percorso della directory host in cui sono memorizzati i dati.
  • HOST_PORT: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

Connettiti all'istanza

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

Connettiti localmente

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:

Connettiti da remoto

psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN

Sostituisci le seguenti variabili:

  • HOST_PORT: la porta TCP utilizzata in Crea il contenitore.
  • IP_ADDRESS_OR_FQDN: indirizzo IP o nome di dominio completo per l'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 Creare il contenitore.

Passaggi successivi