Installer AlloyDB Omni sur une VM

Sélectionnez une version de la documentation :

Cette page explique comment effectuer des installations d'instance unique d'AlloyDB Omni sur n'importe quelle VM Linux compatible avec les runtimes de conteneurs. Si vous avez besoin d'une configuration multi-instances d'AlloyDB Omni, consultez Haute disponibilité et résilience des données.

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 :

  1. Consultez Planifier l'installation d'AlloyDB Omni sur une VM.
  2. 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)
  • Docker, Podman Vous pouvez exécuter ces outils de conteneurisation en tant que conteneur dans n'importe quelle machine virtuelle (VM).
Image UBI (Red Hat) Catalogue de l'écosystème Red Hat
  • environnement Red Hat. Exécutez-le en tant que conteneur.

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 que postgres 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

  1. Si vous utilisez RHEL, CentOS ou Fedora, procédez comme suit :

    1. Installez le programme utilitaire de ligne de commande iptables en exécutant la commande sudo dnf install -y iptables.
    2. Pour toute version de RHEL antérieure à la version 9, installez le package fuse-overlayfs en exécutant la commande sudo dnf install -y fuse-overlayfs.
  2. 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.

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

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

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

  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 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.
  3. 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 fichiers ext4 est de 16 caractères.
    • PARTITION_PATH : chemin d'accès à la partition de disque utilisée pour stocker les données du conteneur.
  4. 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 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 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'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 sur lequel le conteneur doit publier son propre port 5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez 5432.
  • IMAGE_TAG : utilisez 16.3.0 pour la dernière image Debian ou 16.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 :

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.

Étapes suivantes