Instala AlloyDB Omni en una VM

Selecciona una versión de la documentación:

En esta página, se describe cómo realizar instalaciones de instancias únicas 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 datos.

Antes de comenzar

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

Planifica la instalación

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 Ejecuta AlloyDB Omni con privilegios de administrador o sin ellos y completa los pasos necesarios para ejecutarlo con privilegios de administrador o sin ellos, 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 acceso de administrador

Puedes ejecutar AlloyDB Omni con Docker o Podman. Puedes ejecutar estos motores de contenedores con o sin permisos de administrador. El término "con privilegios de raíz" se refiere a ejecutar Docker o Podman como usuario raíz, mientras que "sin privilegios de raíz" se refiere a ejecutar estas imágenes de contenedor 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, es posible que rootful sea la opción adecuada para ti. Si necesitas la seguridad de un usuario sin privilegios, es posible que la opción sin raíz sea la adecuada.

Si decides ejecutar un entorno con acceso 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 hacer nada. 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.

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

Configura rangos de sub-UID y sub-GID (sin raíz)

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

    1. Instala el programa de utilidad de línea de comandos iptables ejecutando 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 raíz.

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

    apt-get install -y uidmap
    
  4. Agrega una entrada subuid para tu usuario sin raíz.

    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-UIDs que deseas registrar para tu usuario.
    • SUB_UID_RANGE_COUNT: Es la cantidad de sub-UIDs que deseas registrar para tu usuario. Este valor debe ser de 999 como mínimo.
  5. Agrega una entrada subgid para tu usuario sin raíz.

    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-GIDs que deseas registrar para tu usuario.
    • SUB_GID_RANGE_COUNT: Cantidad de sub-GIDs que deseas registrar para tu usuario. Este valor debe ser de 999 como mínimo.
  6. Si deseas que tu instancia de AlloyDB Omni se ejecute mientras tu usuario no está conectado, 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 en el sub-UID y el 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: Ruta de acceso al directorio del 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. 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: 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.

    Rootful

    mkdir -p DATA_DIR
    

    Sin raíz

    mkdir -p DATA_DIR
    chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    Reemplaza las siguientes variables:

    • DATA_DIR: Ruta de acceso al directorio del host en el que se almacenan tus datos
    • ROOTLESS_USER: Si usas un entorno sin raíz, este es el usuario que quieres que sea propietario del directorio.
    • ROOTLESS_GROUP: Si usas un entorno sin privilegios 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 \
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

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: Contraseña asignada al usuario postgres del contenedor nuevo después de su creación.
  • DATA_DIR: Ruta de acceso al directorio del 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 el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.
  • IMAGE_TAG: Usa 16.3.0 para la imagen de Debian más reciente o 16.3.0-ubi para la imagen de UBI más reciente.

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: Dirección IP o 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?