Hinweise
Prüfen Sie vor der Installation von AlloyDB Omni, ob die folgenden Anforderungen erfüllt sind.
Installation vorbereiten
Führen Sie vor der Installation von AlloyDB Omni auf Ihrer VM die folgenden Schritte aus:
- Lesen Sie den Abschnitt AlloyDB Omni-Installation auf einer VM planen.
- Lesen Sie AlloyDB Omni mit oder ohne Root-Zugriff ausführen und führen Sie je nach ausgewählter Umgebung alle erforderlichen Schritte für die Ausführung mit oder ohne Root-Zugriff aus.
Download- oder Installationsoption auswählen
Wählen Sie eine der folgenden Download- und Installationsoptionen aus:
Medien | Downloadorte und Installationsanleitungen | Bereitstellung für |
---|---|---|
Debian-Image | DockerHub (Tags) | |
UBI-Image (Red Hat) | Red Hat Ecosystem Catalog |
|
AlloyDB Omni mit oder ohne Root ausführen
Sie können AlloyDB Omni entweder mit Docker oder Podman ausführen. Beide Container-Engines können als Root oder ohne Root ausgeführt werden. „Rootful“ bezieht sich auf die Ausführung von Docker oder Podman als Root-Nutzer, während sich „rootless“ auf die Ausführung als Nicht-Root-Nutzer oder Nutzer ohne Berechtigungen bezieht.
Der ausgewählte Modus hängt von den Anforderungen und Einstellungen ab, die Sie für die Umgebung haben. Wenn Einfachheit wichtig ist, ist Rootful möglicherweise das Richtige für Sie. Wenn Sie die Sicherheit eines Nutzers ohne Berechtigungen benötigen, ist „rootless“ möglicherweise die richtige Wahl.
Wenn Sie eine Umgebung mit Root-Zugriff ausführen möchten, müssen Sie entscheiden, wie die Nutzerzuordnung zwischen dem Container und Ihrem Hostcomputer verwaltet werden soll. In der Praxis werden Prozesse in AlloyDB Omni als postgres
-Nutzer mit einer UID und GID von 999
ausgeführt. Das bedeutet, dass Sie zwei Möglichkeiten haben, die Nutzerzuordnung zu verwalten:
- Nichts unternehmen.
postgres
wird weiterhin keinem Nutzer auf Ihrem Hostcomputer zugeordnet. - Erstellen Sie einen Nutzer und eine Nutzergruppe mit der UID und GID
999
, damitpostgres
dem Nutzer und der Nutzergruppe zugeordnet wird.
In Umgebungen ohne Root-Berechtigung wird postgres
einer Sub-UID und Sub-GID zugeordnet, auf die der Hostnutzer und die Nutzergruppe Zugriff haben (wie in den Dateien /etc/subuid
und /etc/subgid
definiert). Das bedeutet, dass Sie die Nutzerzuordnung nicht verwalten müssen.
(Rootless) Sub-UID- und Sub-GID-Bereiche konfigurieren
Wenn für Ihren Nutzer ohne Berechtigungen in Ihrem Linux-Image noch keine Sub-UID- und Sub-GID-Bereiche konfiguriert sind, müssen Sie sie konfigurieren, um AlloyDB Omni ohne Root-Berechtigungen auszuführen.
Wenn Sie ein Debian-System verwenden, installieren Sie die Binärdateien
newuidmap
undnewgidmap
.apt-get install -y uidmap
Fügen Sie einen
subuid
-Eintrag für den Nutzer ohne Root-Zugriff hinzu.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
Ersetzen Sie die folgenden Variablen:
ROOTLESS_USER
: Der Nutzer, als der Sie AlloyDB Omni ausführen möchten.SUB_UID_RANGE_START
: Die niedrigste Nummer des Bereichs von untergeordneten UIDs, die Sie für Ihren Nutzer registrieren möchten.SUB_UID_RANGE_COUNT
: Anzahl der untergeordneten UIDs, die Sie für Ihren Nutzer registrieren möchten. Dieser Wert muss mindestens 999 sein.
Fügen Sie einen
subgid
-Eintrag für den Nutzer ohne Root-Zugriff hinzu.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
Ersetzen Sie die folgenden Variablen:
ROOTLESS_USER
: Der Nutzer, als der Sie AlloyDB Omni ausführen möchten.SUB_GID_RANGE_START
: Die niedrigste Nummer des Bereichs von untergeordneten GIDs, die Sie für Ihren Nutzer registrieren möchten.SUB_GID_RANGE_COUNT
: Anzahl der untergeordneten GIDs, die Sie für Ihren Nutzer registrieren möchten. Dieser Wert muss mindestens 999 sein.
Wenn Ihre AlloyDB Omni-Instanz ausgeführt werden soll, während Ihr Nutzer nicht angemeldet ist, führen Sie den folgenden Befehl aus.
loginctl enable-linger ROOTLESS_USER
Ersetzen Sie die folgende Variable:
ROOTLESS_USER
: Der Nutzer, als der Sie AlloyDB Omni ausführen möchten.
Wenn Sie Docker verwenden, führen Sie den folgenden Befehl als ROOTLESS_USER aus.
/usr/bin/dockerd-rootless-setuptool.sh install
Öffnen Sie eine neue Shell, damit die Änderungen an der untergeordneten UID und GID wirksam werden.
Verzeichnis erstellen, in dem AlloyDB Omni Daten speichert
Wenn Sie ein Speichersystem verwenden, auf dem mehr als nur AlloyDB Omni ausgeführt wird, können Sie das AlloyDB Omni-Verzeichnis im vorhandenen Dateisystem Ihres Geräts erstellen. Andernfalls können Sie ein neues Dateisystem auf Ihrem dedizierten Gerät erstellen.
Vorhandenes Dateisystem
Docker
mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIR
Ersetzen Sie die folgenden Variablen:
DATA_DIR
: Der Pfad des Hostverzeichnisses, in dem Ihre Daten gespeichert sind.
Zweckbestimmtes Gerät
Erstellen Sie auf dem Host ein Verzeichnis, in dem das Laufwerk bereitgestellt wird.
mkdir -p MOUNT_POINT
Ersetzen Sie die folgende Variable:
MOUNT_POINT
: Pfad des Verzeichnisses der obersten Ebene, das Ihre AlloyDB Omni-Instanz enthalten soll.
Erstellen Sie eine GPT-Partitionstabelle mit einer einzelnen Partition auf dem Laufwerk.
parted -s DEVICE_PATH mklabel gpt
parted -s DEVICE_PATH mkpart primary 0% 100%
Ersetzen Sie die folgende Variable:
DEVICE_PATH
: Pfad, der vom Betriebssystem dem Laufwerkgerät zugewiesen wird.
Erstellen Sie ein Dateisystem auf dem Datenträgergerät. Wir empfehlen die Verwendung des
ext4
-Dateisystems für AlloyDB Omni.mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
Ersetzen Sie die folgenden Variablen:
FS_LABEL
: Label für das Dateisystem. Die maximale Länge einesext4
-Dateisystemlabels beträgt 16 Zeichen.PARTITION_PATH
: Pfad für die Festplattenpartition, die zum Speichern der Daten des Containers verwendet wird.
Stellen Sie das Gerät bereit und erstellen Sie einen Eintrag in der Datei
/etc/fstab
, damit das Laufwerk nach einem Neustart bereitgestellt wird.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
systemctl daemon-reload
mount MOUNT_POINT
Ersetzen Sie die folgenden Variablen:
FS_LABEL
: Label für das Dateisystem. Die maximale Länge einesext4
-Dateisystemlabels beträgt 16 Zeichen.MOUNT_POINT
: Pfad des Verzeichnisses der obersten Ebene, das Ihre AlloyDB Omni-Instanz enthalten soll.
Erstellen Sie ein Datenverzeichnis im containerspezifischen Dateisystem.
Rootful
mkdir -p DATA_DIR
Rootless
mkdir -p DATA_DIR
chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR
Ersetzen Sie die folgenden Variablen:
DATA_DIR
: Der Pfad des Hostverzeichnisses, in dem Ihre Daten gespeichert sind.ROOTLESS_USER
: Wenn Sie eine Umgebung ohne Root-Zugriff verwenden, ist dies der Nutzer, dem das Verzeichnis gehören soll.ROOTLESS_GROUP
: Wenn Sie eine Umgebung ohne Root verwenden, ist dies die Gruppe, die das Verzeichnis besitzen soll.
Container erstellen
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
Ersetzen Sie die folgenden Variablen:
CONTAINER_NAME
: Der Name, den Sie für das Verzeichnis in Verzeichnis erstellen, in dem AlloyDB Omni Daten speichert verwendet haben.NEW_PASSWORD
: Das Passwort, das dempostgres
-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde.DATA_DIR
: Der Pfad des Hostverzeichnisses, in dem Ihre Daten gespeichert sind.HOST_PORT
: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
an.
Mit Instanz verbinden
Je nach Umgebung können Sie entweder lokal oder per Fernzugriff eine Verbindung zu Ihrer AlloyDB Omni-Instanz herstellen.
Regional präsent sein
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
Ersetzen Sie die folgende Variable:
CONTAINER_NAME
: Der Name, den Sie für das Verzeichnis in Verzeichnis erstellen, in dem AlloyDB Omni Daten speichert verwendet haben.
Remote verbinden
psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN
Ersetzen Sie die folgenden Variablen:
HOST_PORT
: Der TCP-Port, den Sie unter Container erstellen verwendet haben.IP_ADDRESS_OR_FQDN
: IP-Adresse oder vollständig qualifizierter Domainname für den Host, auf dem AlloyDB Omni ausgeführt wird.
Nachdem Sie diesen Befehl ausgeführt haben, werden Sie nach dem Passwort des postgres
-Kontos gefragt. Geben Sie das Passwort ein, das Sie unter Container erstellen verwendet haben.