Hinweis
Prüfen Sie vor der Installation von AlloyDB Omni, ob Sie die folgenden Anforderungen erfüllen.
Installation vorbereiten
Bevor Sie AlloyDB Omni auf Ihrer VM installieren, gehen Sie so vor:
- Lesen Sie AlloyDB Omni auf einer VM installieren.
- Lesen Sie AlloyDB Omni mit oder ohne Root-Berechtigung ausführen und führen Sie je nach ausgewählter Umgebung die erforderlichen Schritte für die Ausführung mit oder ohne Root-Berechtigung 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-Berechtigung ausführen
Sie können AlloyDB Omni mit Docker oder Podman ausführen. Diese Container-Engines können mit oder ohne Root-Berechtigung ausgeführt werden. „Mit Root-Berechtigung“ bedeutet, dass Docker oder Podman als Root-Nutzer ausgeführt wird, während „ohne Root-Berechtigung“ bedeutet, dass diese Container-Images als Nicht-Root-Nutzer oder Nutzer ohne Berechtigungen ausgeführt werden.
Der ausgewählte Modus hängt von den Anforderungen und Einstellungen ab, die Sie für die Umgebung haben. Wenn Einfachheit wichtig ist, ist die Ausführung mit Root-Berechtigung möglicherweise die richtige Wahl für Sie. Wenn Sie die Sicherheit eines Nutzers ohne Berechtigungen benötigen, ist die Ausführung ohne Root-Berechtigung möglicherweise die richtige Wahl.
Wenn Sie sich für die Ausführung in einer Umgebung mit Root-Berechtigung entscheiden, müssen Sie festlegen, wie die Nutzerzuordnung zwischen dem Container und Ihrem Hostcomputer verwaltet werden soll. In der Praxis führt AlloyDB Omni Prozesse als postgres-Nutzer aus, der eine UID und GID von 999 hat. Das bedeutet, dass Sie zwei Möglichkeiten haben, die Nutzerzuordnung zu verwalten:
- Nichts unternehmen.
postgreswird weiterhin keinem Nutzer auf Ihrem Hostcomputer zugeordnet. - Erstellen Sie einen Nutzer und eine Nutzergruppe mit der UID und GID
999, damitpostgresdiesem Nutzer und dieser Nutzergruppe zugeordnet wird.
In Umgebungen ohne Root-Berechtigung wird postgres einer Sub-UID und einer Sub-GID zugeordnet, auf die der Hostnutzer und die Hostnutzergruppe Zugriff haben (wie in den Dateien /etc/subuid und /etc/subgid definiert). Das bedeutet, dass Sie die Nutzerzuordnung nicht verwalten müssen.
(Ohne Root-Berechtigung) Sub-UID- und Sub-GID-Bereiche konfigurieren
Wenn Sie RHEL, CentOS oder Fedora verwenden, gehen Sie so vor:
- Installieren Sie das Befehlszeilenprogramm
iptables, indem Sie den Befehlsudo dnf install -y iptablesausführen. - Installieren Sie für alle RHEL-Versionen vor Version 9 das Paket
fuse-overlayfs, indem Sie den Befehlsudo dnf install -y fuse-overlayfsausführen.
- Installieren Sie das Befehlszeilenprogramm
Wenn für Ihren Nutzer ohne Berechtigungen keine Sub-UID- und Sub-GID-Bereiche konfiguriert sind, müssen Sie diese Bereiche konfigurieren, um AlloyDB Omni ohne Root-Berechtigung auszuführen.
Wenn Sie ein Debian-System verwenden, installieren Sie die Binärdateien
newuidmapundnewgidmap.sudo apt-get install -y uidmap
Fügen Sie einen
subuid-Eintrag für Ihren Nutzer ohne Root-Berechtigung hinzu.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" | sudo tee -a /etc/subuid
Ersetzen Sie die folgenden Variablen:
ROOTLESS_USER: Nutzer, als der Sie AlloyDB Omni ausführen möchten.SUB_UID_RANGE_START: Untere Zahl des Bereichs der Sub-UIDs, die Sie für Ihren Nutzer registrieren möchten.SUB_UID_RANGE_COUNT: Anzahl der Sub-UIDs, die Sie für Ihren Nutzer registrieren möchten. Dieser Wert muss mindestens 999 sein.
Fügen Sie einen
subgid-Eintrag für Ihren Nutzer ohne Root-Berechtigung hinzu.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" | sudo tee -a /etc/subgid
Ersetzen Sie die folgenden Variablen:
ROOTLESS_USER: Nutzer, als der Sie AlloyDB Omni ausführen möchten.SUB_GID_RANGE_START: Untere Zahl des Bereichs der Sub-GIDs, die Sie für Ihren Nutzer registrieren möchten.SUB_GID_RANGE_COUNT: Anzahl der Sub-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.
sudo loginctl enable-linger ROOTLESS_USER
Ersetzen Sie die folgende Variable:
ROOTLESS_USER: 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 Sub-UID und Sub-GID wirksam werden.
Verzeichnis erstellen, in dem AlloyDB Omni Daten speichert
Wenn Sie ein Speichersystem verwenden, das mehr als nur die Ausführung von AlloyDB Omni ermöglicht, 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
sudo mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIRPodman
sudo mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIRErsetzen Sie die folgenden Variablen:
DATA_DIR: Der Pfad des Hostverzeichnisses, in dem Ihre Daten gespeichert sind.
Zweckbestimmtes Gerät
Erstellen Sie ein Verzeichnis auf dem Host, in dem das Laufwerk bereitgestellt wird.
sudo 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 Laufwerkgerät.
sudo parted -s DEVICE_PATH mklabel gptsudo parted -s DEVICE_PATH mkpart primary 0% 100%Ersetzen Sie die folgende Variable:
DEVICE_PATH: Pfad, der vom Betriebssystem dem Laufwerkgerät zugewiesen wurde.
Erstellen Sie ein Dateisystem auf dem Laufwerkgerät. Wir empfehlen, für AlloyDB Omni das Dateisystem
ext4zu verwenden.sudo 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 Containerdaten 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" | sudo tee -a /etc/fstabsudo systemctl daemon-reloadsudo mount MOUNT_POINTErsetzen 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 spezifischen Dateisystem des Containers.
Mit Root-Berechtigung
sudo mkdir -p DATA_DIR
Ohne Root-Berechtigung
sudo mkdir -p DATA_DIRsudo chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIRErsetzen Sie die folgenden Variablen:
DATA_DIR: Der Pfad des Hostverzeichnisses, in dem Ihre Daten gespeichert sind.ROOTLESS_USER: Wenn Sie eine Umgebung ohne Root-Berechtigung verwenden, ist dies der Nutzer, dem das Verzeichnis gehören soll.ROOTLESS_GROUP: Wenn Sie eine Umgebung ohne Root-Berechtigung verwenden, ist dies die Gruppe, der das Verzeichnis gehören soll.
Container erstellen
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
Ersetzen Sie die folgenden Variablen:
CONTAINER_NAME: Der Name, den Sie für das Verzeichnis unter 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 Port5432veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432an.IMAGE_TAG: Verwenden Sie16.3.0für das neueste Debian-Image oder16.3.0-ubifür das neueste UBI-Image.
Mit Instanz verbinden
Je nach Umgebung können Sie sich entweder lokal oder remote mit Ihrer AlloyDB Omni-Instanz verbinden.
Regional präsent sein
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
Ersetzen Sie die folgende Variable:
CONTAINER_NAME: Der Name, den Sie für das Verzeichnis unter 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 für das postgres-Konto gefragt. Geben Sie das Passwort ein, das Sie unter
Container erstellen verwendet haben.