Prima di iniziare
Prima di installare AlloyDB Omni, assicurati di soddisfare i seguenti requisiti.
Pianificare l'installazione
Prima di installare AlloyDB Omni sulla VM:
- Leggi Pianificare l'installazione di AlloyDB Omni su una VM.
- 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) | |
Immagine UBI (Red Hat) | Catalogo dell'ecosistema Red Hat |
|
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 chepostgres
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
Se utilizzi RHEL, CentOS o Fedora, segui questi passaggi:
- Installa il programma di utilità a riga di comando
iptables
eseguendo il comandosudo dnf install -y iptables
. - Per qualsiasi versione di RHEL precedente alla 9, installa il pacchetto
fuse-overlayfs
eseguendo il comandosudo dnf install -y fuse-overlayfs
.
- Installa il programma di utilità a riga di comando
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.
Se utilizzi un sistema Debian, installa i file binari
newuidmap
enewgidmap
.apt-get install -y uidmap
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.
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.
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.
Se utilizzi Docker, esegui il seguente comando come ROOTLESS_USER:
/usr/bin/dockerd-rootless-setuptool.sh install
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
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 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.
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 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/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 systemext4
è di 16 caratteri.MOUNT_POINT
: percorso della directory di primo livello che deve contenere l'istanza AlloyDB Omni.
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'utentepostgres
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 porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.IMAGE_TAG
: utilizza16.3.0
per l'ultima immagine Debian o16.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:
CONTAINER_NAME
: il nome che hai utilizzato per la directory in Crea la directory in cui AlloyDB Omni archivia i dati.
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.