Avant de commencer
Avant d'installer AlloyDB Omni, assurez-vous de respecter les conditions suivantes.
Planifiez votre installation.
Avant d'installer AlloyDB Omni sur votre VM, procédez comme suit :
- Planifier l'installation d'AlloyDB Omni sur une VM
- Lisez Exécuter AlloyDB Omni en mode avec ou sans racine et effectuez les étapes nécessaires pour l'accès avec ou sans racine, 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 en mode avec ou sans racine
Vous pouvez exécuter AlloyDB Omni à l'aide de Docker ou de Podman. Vous pouvez exécuter ces moteurs de conteneurs en mode avec ou sans racine. "Avec racine" fait référence à l'exécution de Docker ou Podman en tant qu'utilisateur racine, tandis que "sans racine" fait référence à l'exécution de ces images de conteneur en tant qu'utilisateur non racine ou non privilégié.
Le mode que vous choisissez dépend des exigences et des préférences définies pour l'environnement. Si la simplicité est importante pour vous, le mode avec racine 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 en mode 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, dont l'UID et le GID sont 999. Cela signifie que vous disposez de deux options pour gérer le mappage des utilisateurs :
- Ne rien faire
postgrescontinuera à 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
999afin quepostgressoit 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
iptablesen exécutant la commandesudo dnf install -y iptables. - Pour toute version de RHEL antérieure à la version 9, installez le
fuse-overlayfspackage en exécutant la commandesudo dnf install -y fuse-overlayfs.
- Installez le programme utilitaire de ligne de commande
Si votre image Linux ne dispose pas de plages sous-UID et sous-GID configurées pour votre utilisateur non privilégié, vous devez les configurer pour exécuter AlloyDB Omni en mode sans racine.
Si vous utilisez un système Debian, installez les binaires
newuidmapetnewgidmap.sudo apt-get install -y uidmap
Ajoutez une entrée
subuidpour votre utilisateur sans racine.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" | sudo tee -a /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
subgidpour votre utilisateur sans racine.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" | sudo tee -a /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.
sudo 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é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 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
sudo mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIRPodman
sudo mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIRRemplacez 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é.
sudo 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 le périphérique de disque.
sudo parted -s DEVICE_PATH mklabel gptsudo 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
ext4pour AlloyDB Omni.sudo 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 fichiersext4est de 16 caractères.PARTITION_PATH: chemin d'accès à 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/fstabpour que le disque soit installé après un redémarrage.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | sudo tee -a /etc/fstabsudo systemctl daemon-reloadsudo mount MOUNT_POINTRemplacez les variables suivantes :
FS_LABEL: libellé du système de fichiers. La longueur maximale d'un libellé de système de fichiersext4est 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.
Avec racine
sudo mkdir -p DATA_DIR
Sans racine
sudo mkdir -p DATA_DIRsudo chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIRRemplacez 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
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
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'utilisateurpostgresdu 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.0pour la dernière image Debian ou16.3.0-ubipour 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
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
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 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.