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:
- Leggi Pianifica l'installazione di AlloyDB Omni su una VM.
- 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 chepostgres
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.
Se utilizzi un sistema Debian, installa i file binari
newuidmap
enewgidmap
.apt-get install -y uidmap
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.
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.
Se utilizzi Docker, esegui il seguente comando come ROOTLESS_USER.
/usr/bin/dockerd-rootless-setuptool.sh install
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.
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
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.
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.
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 systemext4
è di 16 caratteri.PARTITION_PATH
: percorso della partizione del disco utilizzata per memorizzare i dati del contenitore.
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 systemext4
è di 16 caratteri.MOUNT_POINT
: percorso della directory di primo livello che deve contenere l'istanza AlloyDB Omni.
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 porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
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:
CONTAINER_NAME
: il nome utilizzato per la directory in Creare la directory in cui AlloyDB Omni memorizza i dati.
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.