Antes de empezar
Antes de instalar AlloyDB Omni, asegúrate de que cumples los siguientes requisitos.
Planificar la instalación
Antes de instalar AlloyDB Omni en tu VM, haz lo siguiente:
- Consulta Planificar la instalación de AlloyDB Omni en una VM.
- Lee el artículo Ejecutar AlloyDB Omni con o sin acceso de superusuario y completa los pasos necesarios para la opción que elijas en función del entorno.
Elige una opción de descarga o instalación
Elige una de las siguientes opciones de descarga e instalación:
| Medios de comunicación | Ubicaciones de descarga y guías de instalación | Despliegue en |
|---|---|---|
| Imagen de Debian | DockerHub (etiquetas) | |
| Imagen UBI (Red Hat) | Catálogo del ecosistema de Red Hat |
|
Ejecutar AlloyDB Omni con o sin acceso de superusuario
Puedes ejecutar AlloyDB Omni con Docker o Podman. Puedes ejecutar estos motores de contenedores con o sin privilegios de superusuario. Rootful hace referencia a ejecutar Docker o Podman como usuario root, mientras que rootless hace referencia a ejecutar estas imágenes de contenedor como usuario no root o sin privilegios.
El modo que elijas dependerá de los requisitos y las preferencias que tengas para el entorno. Si la sencillez es importante para ti, puede que rootful sea la opción adecuada. Si necesitas la seguridad de un usuario sin privilegios, puede que la opción sin root sea la adecuada.
Si decides ejecutar un entorno con acceso de superusuario, debes decidir cómo gestionar la asignación de usuarios entre el contenedor y tu máquina host. 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 gestionar la asignación de usuarios:
- No hagas nada.
postgresno se asignará a ningún usuario de tu máquina host. - Crea un usuario y un grupo de usuarios con los valores UID y GID de
999para quepostgresse asigne a ese usuario y a ese grupo de usuarios.
En los entornos sin raíz, postgres se asigna a un sub-UID y a un sub-GID a los que tienen acceso el usuario y el grupo de usuarios del host (tal como se define en los archivos /etc/subuid y /etc/subgid). Esto significa que no tienes que gestionar la asignación de usuarios.
(Sin root) Configurar intervalos de sub-UID y sub-GID
Si usas RHEL, CentOS o Fedora, sigue estos pasos:
- Instala el programa de utilidad de línea de comandos
iptablesejecutando el comandosudo dnf install -y iptables. - En cualquier versión de RHEL anterior a la 9, instala el paquete
fuse-overlayfsejecutando el comandosudo dnf install -y fuse-overlayfs.
- Instala el programa de utilidad de línea de comandos
Si tu imagen de Linux no tiene configurados los intervalos de sub-UID y sub-GID para tu usuario sin privilegios, debes configurar estos intervalos para ejecutar AlloyDB Omni sin raíz.
Si usas un sistema Debian, instala los archivos binarios
newuidmapynewgidmap.apt-get install -y uidmap
Añade una entrada
subuidpara tu usuario sin raíz.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
Sustituye las siguientes variables:
ROOTLESS_USER: usuario con el que quieres ejecutar AlloyDB Omni.SUB_UID_RANGE_START: número inferior del intervalo de sub-UIDs que quieres registrar para tu usuario.SUB_UID_RANGE_COUNT: cantidad de sub-UIDs que quieres registrar para tu usuario. Este valor debe ser 999 como mínimo.
Añade una entrada
subgidpara tu usuario sin raíz.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
Sustituye las siguientes variables:
ROOTLESS_USER: usuario con el que quieres ejecutar AlloyDB Omni.SUB_GID_RANGE_START: número inferior del intervalo de sub-GIDs que quieres registrar para tu usuario.SUB_GID_RANGE_COUNT: cantidad de sub-GIDs que quieres registrar para tu usuario. Este valor debe ser 999 como mínimo.
Si quieres que tu instancia de AlloyDB Omni se ejecute mientras tu usuario no ha iniciado sesión, ejecuta el siguiente comando.
loginctl enable-linger ROOTLESS_USER
Sustituye la siguiente variable:
ROOTLESS_USER: usuario con el que quieres ejecutar AlloyDB Omni.
Si usas Docker, ejecuta el siguiente comando como ROOTLESS_USER:
/usr/bin/dockerd-rootless-setuptool.sh install
Abre un nuevo shell para que los cambios de sub-UID y sub-GID surtan efecto.
Crea un directorio donde AlloyDB Omni almacene los datos
Si utilizas un sistema de almacenamiento que hace más que ejecutar AlloyDB Omni, puedes crear el directorio de AlloyDB Omni en el sistema de archivos de tu dispositivo. De lo contrario, puedes crear un nuevo sistema de archivos en tu dispositivo específico.
Sistema de archivos actual
Docker
mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIRPodman
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIRSustituye las siguientes variables:
DATA_DIR: ruta del directorio de host en el que se almacenan tus datos.
Dispositivo especializado
Crea un directorio en el host donde se montará el disco.
mkdir -p MOUNT_POINT
Sustituye la siguiente variable:
MOUNT_POINT: ruta del directorio de nivel superior que debe contener tu instancia de AlloyDB Omni.
Crea una tabla de particiones GPT con una sola partición en el dispositivo de disco.
parted -s DEVICE_PATH mklabel gptparted -s DEVICE_PATH mkpart primary 0% 100%Sustituye la siguiente variable:
DEVICE_PATH: ruta asignada por el sistema operativo al dispositivo de disco.
Crea un sistema de archivos en el dispositivo de disco. Recomendamos usar el sistema de archivos
ext4para AlloyDB Omni.mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
Sustituye las siguientes variables:
FS_LABEL: etiqueta del sistema de archivos. La longitud máxima de una etiqueta del sistema de archivosext4es de 16 caracteres.PARTITION_PATH: ruta de la partición del disco que se usa para almacenar los datos del contenedor.
Monta el dispositivo y crea una entrada en el archivo
/etc/fstabpara que el disco se monte después de reiniciar.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstabsystemctl daemon-reloadmount MOUNT_POINTSustituye las siguientes variables:
FS_LABEL: etiqueta del sistema de archivos. La longitud máxima de una etiqueta del sistema de archivosext4es de 16 caracteres.MOUNT_POINT: ruta del directorio de nivel superior que debe contener tu instancia de AlloyDB Omni.
Crea un directorio de datos en el sistema de archivos específico del contenedor.
Rootful
mkdir -p DATA_DIR
Rootless
mkdir -p DATA_DIRchown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIRSustituye las siguientes variables:
DATA_DIR: ruta del directorio de host en el que se almacenan tus datos.ROOTLESS_USER: Si usas un entorno sin root, este es el usuario que quieres que sea el propietario del directorio.ROOTLESS_GROUP: si usas un entorno sin root, este es el grupo que quieres que sea propietario del directorio.
Crear 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
Sustituye las siguientes variables:
CONTAINER_NAME: nombre que has usado para el directorio en Crear un directorio donde AlloyDB Omni almacene los datos.NEW_PASSWORD: contraseña asignada al usuariopostgresdel nuevo contenedor después de su creación.DATA_DIR: ruta del directorio de host en el que se almacenan tus datos.HOST_PORT: puerto TCP de la máquina host al que debe publicar su propio puerto5432el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432.IMAGE_TAG: usa16.3.0para la imagen de Debian más reciente o16.3.0-ubipara la imagen de UBI más reciente.
Conectarse a la instancia
En función de tu entorno, puedes conectarte a tu instancia de AlloyDB Omni de forma local o remota.
Conecta en tu zona
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
Sustituye la siguiente variable:
CONTAINER_NAME: nombre que has usado para el directorio en Crear un directorio donde AlloyDB Omni almacene los datos.
Conectar de forma remota
psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN
Sustituye las siguientes variables:
HOST_PORT: puerto TCP que has usado en Crear el contenedor.IP_ADDRESS_OR_FQDN: dirección IP o nombre de dominio completo 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. Introduce la contraseña que has usado en Crear el contenedor.