Installer AlloyDB Omni sur une VM

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:

  1. Consultez Planifier votre installation d'AlloyDB Omni sur une VM.
  2. 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 que postgres 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.

  1. Si vous utilisez un système Debian, installez les binaires newuidmap et newgidmap.

    apt-get install -y uidmap
    
  2. 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.
  3. 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.
  4. Si vous utilisez Docker, exécutez la commande suivante en tant que ROOTLESS_USER.

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  5. 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.
  6. 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é

  1. 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.
  2. 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.
  3. 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 fichiers ext4 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.
  4. 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 fichiers ext4 est de 16 caractères.
    • MOUNT_POINT: chemin d'accès au répertoire de premier niveau qui doit contenir votre instance AlloyDB Omni.
  5. 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'utilisateur postgres 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 port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.

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 :

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.

Étape suivante