Avant de commencer
Avant d'installer AlloyDB Omni, assurez-vous de remplir les conditions suivantes.
Planifier votre installation
Avant d'installer AlloyDB Omni sur votre VM, procédez comme suit :
- Consultez Planifier l'installation d'AlloyDB Omni sur une VM.
- Lisez Exécuter AlloyDB Omni avec ou sans accès root et effectuez les étapes nécessaires pour l'accès root ou non root, selon l'environnement que vous choisissez.
Choisir une option de téléchargement ou d'installation
Choisissez l'une des options de téléchargement et d'installation suivantes :
Médias | Emplacements de téléchargement et guides d'installation | Déploiement vers |
---|---|---|
Image Debian | DockerHub (tags) | |
Image UBI (Red Hat) | Catalogue de l'écosystème Red Hat |
|
Exécuter AlloyDB Omni avec ou sans accès root
Vous pouvez exécuter AlloyDB Omni à l'aide de Docker ou Podman. Vous pouvez exécuter ces moteurs de conteneurs avec ou sans accès root. Le terme "rootful" fait référence à l'exécution de Docker ou Podman en tant qu'utilisateur racine, tandis que "rootless" fait référence à l'exécution de ces images de conteneurs en tant qu'utilisateur non racine ou non privilégié.
Le mode que vous choisissez dépend des exigences et des préférences que vous avez pour l'environnement. Si la simplicité est importante pour vous, rootful peut être la solution idéale. Si vous avez besoin de la sécurité d'un utilisateur non privilégié, l'option sans racine peut être le bon choix.
Si vous décidez d'exécuter un environnement rootful, vous devez choisir comment gérer le mappage des utilisateurs entre le conteneur et votre machine hôte. En pratique, AlloyDB Omni exécute les processus en tant qu'utilisateur postgres
, qui possède un UID et un GID de 999
. Cela signifie que vous disposez de deux options pour gérer le mappage des utilisateurs :
- Ne rien faire.
postgres
continuera à ne pas être mappé à un utilisateur sur votre machine hôte. - Créez un utilisateur et un groupe d'utilisateurs avec les UID et GID
999
afin quepostgres
soit associé à cet utilisateur et à ce groupe d'utilisateurs.
Pour les environnements sans racine, postgres
correspond à un sous-UID et un sous-GID auxquels l'utilisateur et le groupe d'utilisateurs hôtes ont accès (tels que définis dans vos fichiers /etc/subuid
et /etc/subgid
). Cela signifie que vous n'avez pas besoin de gérer le mappage des utilisateurs.
(Sans racine) Configurer les plages de sous-UID et de sous-GID
Si vous utilisez RHEL, CentOS ou Fedora, procédez comme suit :
- Installez le programme utilitaire de ligne de commande
iptables
en exécutant la commandesudo dnf install -y iptables
. - Pour toute version de RHEL antérieure à la version 9, installez le package
fuse-overlayfs
en exécutant la commandesudo dnf install -y fuse-overlayfs
.
- Installez le programme utilitaire de ligne de commande
Si votre image Linux ne comporte pas de plages sub-UID et sub-GID configurées pour votre utilisateur sans privilèges, vous devez configurer ces plages pour exécuter AlloyDB Omni sans racine.
Si vous utilisez un système Debian, installez les binaires
newuidmap
etnewgidmap
.apt-get install -y uidmap
Ajoutez une entrée
subuid
pour votre utilisateur sans racine.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
Remplacez les variables suivantes :
ROOTLESS_USER
: utilisateur sous lequel vous souhaitez exécuter AlloyDB Omni.SUB_UID_RANGE_START
: nombre inférieur de la plage de sous-UID que vous souhaitez enregistrer pour votre utilisateur.SUB_UID_RANGE_COUNT
: nombre de sous-UID que vous souhaitez enregistrer pour votre utilisateur. Cette valeur doit être au moins égale à 999.
Ajoutez une entrée
subgid
pour votre utilisateur sans racine.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
Remplacez les variables suivantes :
ROOTLESS_USER
: utilisateur sous lequel vous souhaitez exécuter AlloyDB Omni.SUB_GID_RANGE_START
: nombre inférieur de la plage de sous-GIDs que vous souhaitez enregistrer pour votre utilisateur.SUB_GID_RANGE_COUNT
: nombre de sous-GIDs que vous souhaitez enregistrer pour votre utilisateur. Cette valeur doit être au moins égale à 999.
Si vous souhaitez que votre instance AlloyDB Omni s'exécute lorsque votre utilisateur n'est pas connecté, exécutez la commande suivante.
loginctl enable-linger ROOTLESS_USER
Remplacez la variable suivante :
ROOTLESS_USER
: utilisateur sous lequel vous souhaitez exécuter AlloyDB Omni.
Si vous utilisez Docker, exécutez la commande suivante en tant que ROOTLESS_USER :
/usr/bin/dockerd-rootless-setuptool.sh install
Ouvrez un nouveau shell pour que les modifications apportées aux sous-UID et sous-GID prennent effet.
Créez un répertoire dans lequel AlloyDB Omni stocke les données.
Si vous utilisez un système de stockage qui ne se contente pas d'exécuter AlloyDB Omni, vous pouvez créer le répertoire AlloyDB Omni sur le système de fichiers existant de votre appareil. Sinon, vous pouvez créer un système de fichiers sur votre appareil dédié.
Système de fichiers existant
Docker
mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIR
Remplacez les variables suivantes :
DATA_DIR
: chemin d'accès au répertoire hôte dans lequel vos données sont stockées.
Appareil dédié
Créez un répertoire sur l'hôte où le disque sera installé.
mkdir -p MOUNT_POINT
Remplacez la variable suivante :
MOUNT_POINT
: chemin d'accès au répertoire de premier niveau qui doit contenir votre instance AlloyDB Omni.
Créez une table de partition GPT avec une seule partition sur le périphérique de disque.
parted -s DEVICE_PATH mklabel gpt
parted -s DEVICE_PATH mkpart primary 0% 100%
Remplacez la variable suivante :
DEVICE_PATH
: chemin d'accès attribué par le système d'exploitation au périphérique de disque.
Créez un système de fichiers sur le périphérique de disque. Nous vous recommandons d'utiliser le système de fichiers
ext4
pour AlloyDB Omni.mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
Remplacez les variables suivantes :
FS_LABEL
: libellé du système de fichiers. La longueur maximale d'un libellé de système de fichiersext4
est de 16 caractères.PARTITION_PATH
: chemin d'accès à la partition de disque utilisée pour stocker les données du conteneur.
Montez l'appareil et créez une entrée dans le fichier
/etc/fstab
pour que le disque soit monté après un redémarrage.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
systemctl daemon-reload
mount MOUNT_POINT
Remplacez les variables suivantes :
FS_LABEL
: libellé du système de fichiers. La longueur maximale d'un libellé de système de fichiersext4
est de 16 caractères.MOUNT_POINT
: chemin d'accès au répertoire de premier niveau qui doit contenir votre instance AlloyDB Omni.
Créez un répertoire de données dans le système de fichiers spécifique au conteneur.
Rootful
mkdir -p DATA_DIR
Rootless
mkdir -p DATA_DIR
chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR
Remplacez les variables suivantes :
DATA_DIR
: chemin d'accès au répertoire hôte dans lequel vos données sont stockées.ROOTLESS_USER
: si vous utilisez un environnement sans racine, il s'agit de l'utilisateur auquel vous souhaitez attribuer la propriété du répertoire.ROOTLESS_GROUP
: si vous utilisez un environnement sans racine, il s'agit du groupe auquel vous souhaitez attribuer la propriété du répertoire.
Créer le conteneur
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
Remplacez les variables suivantes :
CONTAINER_NAME
: nom que vous avez utilisé pour le répertoire dans Créer un répertoire où AlloyDB Omni stocke les données.NEW_PASSWORD
: mot de passe attribué à l'utilisateurpostgres
du nouveau conteneur après sa création.DATA_DIR
: chemin d'accès au répertoire hôte dans lequel vos données sont stockées.HOST_PORT
: port TCP sur la machine hôte sur lequel le conteneur doit publier son propre port5432
. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez5432
.IMAGE_TAG
: utilisez16.3.0
pour la dernière image Debian ou16.3.0-ubi
pour la dernière image UBI.
Se connecter à l'instance
Selon votre environnement, vous pouvez vous connecter à votre instance AlloyDB Omni localement ou à distance.
Touchez les clients à proximité
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
Remplacez la variable suivante :
CONTAINER_NAME
: nom que vous avez utilisé pour le répertoire dans Créer un répertoire où AlloyDB Omni stocke les données.
Se connecter à distance
psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN
Remplacez les variables suivantes :
HOST_PORT
: port TCP que vous avez utilisé dans Créer le conteneur.IP_ADDRESS_OR_FQDN
: adresse IP ou nom de domaine complet de l'hôte sur lequel AlloyDB Omni est exécuté.
Après avoir exécuté cette commande, vous êtes invité à saisir le mot de passe du compte postgres
. Saisissez le mot de passe que vous avez utilisé dans Créer le conteneur.