Prima di iniziare
Prima di installare AlloyDB Omni, assicurati di soddisfare i seguenti requisiti.
Pianifica l'installazione
Prima di installare AlloyDB Omni sulla VM:
- Leggi Pianificare l'installazione di AlloyDB Omni su una VM.
- 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) | |
| Immagine UBI (Red Hat) | Red Hat Ecosystem Catalog |
|
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.
postgrescontinuerà a non essere mappato a nessun utente sulla macchina host. - Crea un utente e un gruppo di utenti con UID e GID di
999in modo chepostgresvenga 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
Se utilizzi RHEL, CentOS o Fedora, segui questi passaggi:
- Installa il programma di utilità a riga di comando
iptableseseguendo il comandosudo dnf install -y iptables. - Per qualsiasi versione di RHEL precedente alla 9, installa il pacchetto
fuse-overlayfseseguendo il comandosudo dnf install -y fuse-overlayfs.
- Installa il programma di utilità a riga di comando
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.
Se utilizzi un sistema Debian, installa i file binari
newuidmapenewgidmap.sudo apt-get install -y uidmap
Aggiungi una voce
subuidper 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.
Aggiungi una voce
subgidper 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.
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.
Se utilizzi Docker, esegui il seguente comando come ROOTLESS_USER
/usr/bin/dockerd-rootless-setuptool.sh install
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_DIRPodman
sudo mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIRSostituisci le seguenti variabili:
DATA_DIR: percorso della directory host in cui sono archiviati i dati.
Dispositivo dedicato
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.
Crea una tabella delle partizioni gpt con una singola partizione sul dispositivo disco.
sudo parted -s DEVICE_PATH mklabel gptsudo 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
ext4per 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 systemext4è di 16 caratteri.PARTITION_PATH: percorso della partizione del disco utilizzata per archiviare i dati del container.
Monta il dispositivo e crea una voce nel file
/etc/fstabin modo che il disco venga montato dopo un riavvio.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | sudo tee -a /etc/fstabsudo systemctl daemon-reloadsudo mount MOUNT_POINTSostituisci le seguenti variabili:
FS_LABEL: etichetta del 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 container.
Con root
sudo mkdir -p DATA_DIR
Senza root
sudo mkdir -p DATA_DIRsudo chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIRSostituisci 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'utentepostgresdel 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 porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432.IMAGE_TAG: utilizza16.3.0per l'ultima immagine Debian o16.3.0-ubiper 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:
CONTAINER_NAME: nome utilizzato per la directory in Crea una directory in cui AlloyDB Omni archivia i dati.
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.