Instala AlloyDB Omni con contenedores

Selecciona una versión de la documentación:

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

Antes de comenzar

Antes de instalar AlloyDB Omni, asegúrate de cumplir con los siguientes requisitos.

Solicita acceso a la imagen de AlloyDB Omni

Para obtener acceso a la imagen de PostgreSQL 18, completa el formulario de registro de incentivos de AlloyDB Omni.

Planifica la instalación

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

  1. Lee Planifica tu instalación de AlloyDB Omni en una VM.
  2. Lee Ejecuta AlloyDB Omni con o sin permisos de administrador y completa los pasos necesarios para cada opción según el entorno que elijas.

Elige una opción de descarga o instalación

Elige una de las siguientes opciones de descarga e instalación:

Medios Ubicaciones de descarga y guías de instalación Implementación en
Imagen de Debian DockerHub (etiquetas)
  • Docker, Podman. Puedes ejecutar estas herramientas de contenedorización como un contenedor en cualquier máquina virtual (VM).
Imagen de UBI (Red Hat) Catálogo del ecosistema de Red Hat
  • Entorno de Red Hat. Ejecuta esto como un contenedor.

Ejecuta AlloyDB Omni con o sin permisos de administrador

Puedes ejecutar AlloyDB Omni con Docker o Podman. Puedes ejecutar estos motores de contenedores con o sin permisos de administrador. Con permisos de administrador se refiere a ejecutar Docker o Podman como el usuario raíz, mientras que sin permisos de administrador se refiere a ejecutar estas imágenes de contenedor como un usuario no raíz o sin privilegios.

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

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

  • No realizar ninguna acción. postgres seguirá sin asignarse a ningún usuario en tu máquina host.
  • 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.

Para 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 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 los rangos de sub-UID y sub-GID

  1. Si usas RHEL, CentOS o Fedora, sigue estos pasos:

    1. Para instalar el programa de utilidad de línea de comandos iptables, ejecuta el comando sudo dnf install -y iptables.
    2. Para cualquier versión de RHEL anterior a la 9, instala el paquete fuse-overlayfs ejecutando el comando sudo dnf install -y fuse-overlayfs.
  2. Si tu imagen de Linux no tiene rangos de sub-UID y sub-GID configurados para tu usuario sin privilegios, debes configurar estos rangos para ejecutar AlloyDB Omni sin permisos de administrador.

  3. Si estás en un sistema Debian, instala los objetos binarios newuidmap y newgidmap.

    apt-get install -y uidmap
    
  4. 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 más bajo del rango de sub-UID que deseas registrar para tu usuario.
    • SUB_UID_RANGE_COUNT: Es la cantidad de sub-UID que deseas registrar para tu usuario. El valor debe ser de 999 como mínimo.
  5. 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 más bajo del rango de sub-GID que deseas registrar para tu usuario.
    • SUB_GID_RANGE_COUNT: Es la cantidad de sub-GID que deseas registrar para tu usuario. El valor debe ser de 999 como mínimo.
  6. Si deseas que tu instancia de AlloyDB Omni se ejecute mientras el usuario no accede, ejecuta el siguiente comando.

    loginctl enable-linger ROOTLESS_USER
    

    Reemplaza la siguiente variable:

    • ROOTLESS_USER: Es el usuario con el que deseas ejecutar AlloyDB Omni.
  7. Si usas Docker, ejecuta el siguiente comando como ROOTLESS_USER:

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  8. Abre un shell nuevo para que los cambios de sub-UID y sub-GID 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 host en el 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 al 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 el sistema operativo asigna al dispositivo de disco.
  3. Crea un sistema de archivos en el dispositivo de disco. Te recomendamos que uses 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: Es la etiqueta del 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 a 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: Es la etiqueta del 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 al 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 host en el que se almacenan tus datos.
    • ROOTLESS_USER: Si usas un entorno sin permisos de administrador, este es el usuario que deseas que sea propietario del directorio.
    • ROOTLESS_GROUP: Si usas un entorno sin permisos de administrador, este es el grupo que deseas que sea propietario del 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 \
-d IMAGE_URI

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 \
-d IMAGE_URI

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 \
-d IMAGE_URI

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 \
-d IMAGE_URI

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para el directorio en Crea un directorio en el que AlloyDB Omni almacene datos.
  • NEW_PASSWORD: Es la contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • DATA_DIR: Es la ruta de acceso al directorio host en el que se almacenan tus datos.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión al que el contenedor debe publicar su propio puerto 5432. Para usar también el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.
  • IMAGE_URI: Reemplaza por la ubicación de la imagen que se proporciona en el correo electrónico que recibiste cuando solicitaste acceso.

Conéctate a la instancia

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

Conéctate 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:

Conéctate 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 postgres. Ingresa la contraseña que usaste en Crea el contenedor.

¿Qué sigue?