Cette page explique comment effectuer des installations d'une seule instance d'AlloyDB Omni sur n'importe quelle VM Linux compatible avec les environnements d'exécution de conteneur. Si vous avez besoin d'une configuration multi-instance d'AlloyDB Omni, consultez la section Haute disponibilité et résilience des données.
Avant de commencer
Avant d'installer AlloyDB Omni sur votre VM, procédez comme suit:
- Consultez Planifier votre installation d'AlloyDB Omni sur une VM.
- Lisez Exécuter AlloyDB Omni avec ou sans racine et effectuez les étapes nécessaires pour les environnements avec ou sans racine, selon l'environnement de votre choix.
Exécuter AlloyDB Omni avec ou sans root
Vous pouvez exécuter AlloyDB Omni à l'aide de Docker ou de Podman. Ces deux moteurs de conteneur peuvent être exécutés en mode root ou sans racine. "Rootful" fait référence à l'exécution de Docker ou Podman en tant qu'utilisateur racine, tandis que "rootless" fait référence à leur exécution 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, rootful est peut-être la solution qu'il vous faut. Si vous avez besoin de la sécurité d'un utilisateur non privilégié, le mode sans racine peut être le bon choix.
Si vous décidez d'exécuter un environnement avec racine, 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 a 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
ne sera toujours pas mappé à un utilisateur sur votre machine hôte. - Créez un utilisateur et un groupe d'utilisateurs avec les UID et GID de
999
afin quepostgres
soit mappé sur cet utilisateur et ce groupe d'utilisateurs.
Pour les environnements sans racine, postgres
est mappé sur un sous-UID et un sous-GID auxquels l'utilisateur hôte et le groupe d'utilisateurs ont accès (tel que défini dans vos fichiers /etc/subuid
et /etc/subgid
). Vous n'avez donc pas besoin de gérer le mappage des utilisateurs.
(Sans racine) Configurer les plages de sous-UID et de sous-GID
Si les plages de sous-UID et de sous-GID ne sont pas déjà configurées pour votre utilisateur non privilégié dans votre image Linux, vous devez les configurer 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 avec 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 avec lequel vous souhaitez exécuter AlloyDB Omni.SUB_GID_RANGE_START
: nombre inférieur de la plage de sous-GID que vous souhaitez enregistrer pour votre utilisateur.SUB_GID_RANGE_COUNT
: nombre de sous-GID que vous souhaitez enregistrer pour votre utilisateur. Cette valeur doit être au moins égale à 999.
Si vous utilisez Docker, exécutez la commande suivante en tant que ROOTLESS_USER.
/usr/bin/dockerd-rootless-setuptool.sh install
Si vous utilisez Podman, autorisez votre utilisateur à exécuter des services lorsqu'il n'est pas connecté.
loginctl enable-linger ROOTLESS_USER
Remplacez la variable suivante :
ROOTLESS_USER
: utilisateur avec lequel vous souhaitez exécuter AlloyDB Omni.
Ouvrez un nouveau shell pour que les modifications apportées aux sous-UID et aux sous-GID prennent effet.
Créer 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 dans 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 partitionnement gpt avec une seule partition sur l'appareil 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 à l'appareil disque.
Créez un système de fichiers sur l'appareil 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 de la partition de disque utilisée pour stocker les données du conteneur.
Installez l'appareil et créez une entrée dans le fichier
/etc/fstab
pour que le disque soit installé 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 propriétaire du répertoire.ROOTLESS_GROUP
: si vous utilisez un environnement sans racine, il s'agit du groupe propriétaire 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: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
Remplacez les variables suivantes :
CONTAINER_NAME
: nom que vous avez utilisé pour le répertoire dans Créer un répertoire dans lequel 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 auquel le conteneur doit publier son propre port5432
. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez5432
.
Se connecter à l'instance
Selon votre environnement, vous pouvez vous connecter à votre instance AlloyDB Omni localement ou à distance.
Se connecter en local
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 dans lequel 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 s'exécute.
Une fois cette commande exécutée, 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.