Instala AlloyDB Omni en una VM

En esta página, se describe cómo realizar instalaciones de instancia única de AlloyDB Omni en cualquier VM de Linux que admita tiempos de ejecución de contenedores. Si necesitas una configuración de varias instancias de AlloyDB Omni, consulta Alta disponibilidad y resiliencia de los datos.

Antes de comenzar

Antes de instalar AlloyDB Omni en tu VM, haz lo siguiente:

  1. Lee Planifica la instalación de AlloyDB Omni en una VM.
  2. Lee Cómo ejecutar AlloyDB Omni con o sin permisos de administrador y completa los pasos necesarios para obtener permisos de administrador o no, según el entorno que elijas.

Ejecuta AlloyDB Omni con o sin permisos de administrador

Puedes ejecutar AlloyDB Omni con Docker o Podman. Ambos motores de contenedores se pueden ejecutar como raíz o sin raíz. Rootful se refiere a la ejecución de Docker o Podman como el usuario raíz, mientras que sin raíz se refiere a la ejecución como un usuario no raíz o sin privilegios.

El modo que elijas dependerá de los requisitos y las preferencias que tengas para el entorno. Si la simplicidad es importante, Rootful podría ser la opción adecuada para ti. Si necesitas la seguridad de un usuario sin privilegios, la opción sin permisos de raíz podría ser la adecuada.

Si decides ejecutar un entorno con permisos de raíz, debes decidir cómo administrar la asignación de usuarios entre el contenedor y la máquina host. En la práctica, AlloyDB Omni ejecuta procesos como el usuario postgres, que tiene un UID y GID de 999. Esto significa que tienes dos opciones para administrar la asignación de usuarios:

  • No hacer nada. postgres seguirá sin asignarse a ningún usuario en tu máquina anfitrión.
  • Crea un usuario y un grupo de usuarios con UID y GID de 999 para que postgres se asigne a ese usuario y grupo de usuarios.

En los entornos sin permisos de administrador, postgres se asigna a un sub-UID y un sub-GID a los que el usuario y el grupo de usuarios del host tienen acceso (como se define en los archivos /etc/subuid y /etc/subgid). Esto significa que no necesitas administrar la asignación de usuarios.

(Sin permisos de administrador) Configura rangos de sub-UID y sub-GID

Si tu imagen de Linux aún no tiene subrangos de UID y GID configurados para tu usuario sin privilegios, debes configurarlos para ejecutar AlloyDB Omni sin permisos de administrador.

  1. Si usas un sistema Debian, instala los objetos binarios newuidmap y newgidmap.

    apt-get install -y uidmap
    
  2. Agrega una entrada subuid para tu usuario sin permisos de administrador.

    echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
    

    Reemplaza las siguientes variables:

    • ROOTLESS_USER: Es el usuario con el que deseas ejecutar AlloyDB Omni.
    • SUB_UID_RANGE_START: Es el número inferior del rango de UID secundarios que deseas registrar para tu usuario.
    • SUB_UID_RANGE_COUNT: Es la cantidad de UID secundarios que deseas registrar para tu usuario. Este valor debe ser de 999 como mínimo.
  3. Agrega una entrada subgid para tu usuario sin permisos de administrador.

    echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
    

    Reemplaza las siguientes variables:

    • ROOTLESS_USER: Es el usuario con el que deseas ejecutar AlloyDB Omni.
    • SUB_GID_RANGE_START: Es el número inferior del rango de GID secundarios que deseas registrar para tu usuario.
    • SUB_GID_RANGE_COUNT: Es la cantidad de sub-GID que deseas registrar para tu usuario. Este valor debe ser de 999 como mínimo.
  4. Si usas Docker, ejecuta el siguiente comando como ROOTLESS_USER.

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  5. Si usas Podman, permite que el usuario ejecute servicios sin acceder.

    loginctl enable-linger ROOTLESS_USER
    

    Reemplaza la siguiente variable:

    • ROOTLESS_USER: Es el usuario con el que deseas ejecutar AlloyDB Omni.
  6. Abre una nueva shell para que los cambios de UID y GID secundarios tengan efecto.

Crea un directorio en el que AlloyDB Omni almacene datos

Si usas un sistema de almacenamiento que hace más que solo ejecutar AlloyDB Omni, puedes crear el directorio de AlloyDB Omni en el sistema de archivos existente de tu dispositivo. De lo contrario, puedes crear un sistema de archivos nuevo en tu dispositivo dedicado.

Sistema de archivos existente

Docker

mkdir -p DATA_DIR

Docker

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Reemplaza las siguientes variables:

  • DATA_DIR: Es la ruta de acceso al directorio del host en la que se almacenan tus datos.

Exclusivo

  1. Crea un directorio en el host en el que se activará el disco.

    mkdir -p MOUNT_POINT
    

    Reemplaza la siguiente variable:

    • MOUNT_POINT: Es la ruta de acceso del directorio de nivel superior que debe contener tu instancia de AlloyDB Omni.
  2. Crea una tabla de particiones gpt con una sola partición en el dispositivo de disco.

    parted -s DEVICE_PATH mklabel gpt
    parted -s DEVICE_PATH mkpart primary 0% 100%

    Reemplaza la siguiente variable:

    • DEVICE_PATH: Es la ruta de acceso que asigna el sistema operativo al dispositivo de disco.
  3. Crea un sistema de archivos en el dispositivo de disco. Recomendamos usar el sistema de archivos ext4 para AlloyDB Omni.

    mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
    

    Reemplaza las siguientes variables:

    • FS_LABEL: Etiqueta para el sistema de archivos. La longitud máxima de una etiqueta del sistema de archivos ext4 es de 16 caracteres.
    • PARTITION_PATH: Es la ruta de acceso de la partición del disco que se usa para almacenar los datos del contenedor.
  4. Activa el dispositivo y crea una entrada en el archivo /etc/fstab para que el disco se active después de un reinicio.

    echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
    systemctl daemon-reload
    mount MOUNT_POINT

    Reemplaza las siguientes variables:

    • FS_LABEL: Etiqueta para el sistema de archivos. La longitud máxima de una etiqueta del sistema de archivos ext4 es de 16 caracteres.
    • MOUNT_POINT: Es la ruta de acceso del directorio de nivel superior que debe contener tu instancia de AlloyDB Omni.
  5. Crea un directorio de datos en el sistema de archivos específico del contenedor.

    Con permisos de administrador

    mkdir -p DATA_DIR
    

    Sin permisos de administrador

    mkdir -p DATA_DIR
    chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    Reemplaza las siguientes variables:

    • DATA_DIR: Es la ruta de acceso al directorio del host en la que se almacenan tus datos.
    • ROOTLESS_USER: Si usas un entorno sin permisos de raíz, este es el usuario que quieres que sea propietario del directorio.
    • ROOTLESS_GROUP: Si usas un entorno sin permisos de raíz, este es el grupo al que quieres que pertenezca el directorio.

Crea el contenedor

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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para el directorio en Crea el directorio en el que AlloyDB Omni almacena los datos.
  • NEW_PASSWORD: Contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • DATA_DIR: Es la ruta de acceso al directorio del host en la que se almacenan tus datos.
  • HOST_PORT: Es el puerto TCP en la máquina host al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

Conéctate a la instancia

Según tu entorno, puedes conectarte a tu instancia de AlloyDB Omni de forma local o remota.

Cómo conectarse de forma 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

Reemplaza la siguiente variable:

Cómo conectarse de forma remota

psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN

Reemplaza las siguientes variables:

  • HOST_PORT: Es el puerto TCP que usaste en Crea el contenedor.
  • IP_ADDRESS_OR_FQDN: Es la dirección IP o el nombre de dominio completamente calificado del host en el que se ejecuta AlloyDB Omni.

Después de ejecutar este comando, se te pedirá la contraseña de la cuenta de postgres. Ingresa la contraseña que usaste en Crea el contenedor.

¿Qué sigue?