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. Ambos motores de contenedores se pueden ejecutar con o sin privilegios de superusuario. Rootful hace referencia a ejecutar Docker o Podman como usuario root, mientras que rootless hace referencia a ejecutarlos 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.
postgres
no 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
999
para quepostgres
se 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 tu imagen de Linux aún no tiene configurados los intervalos de sub-UID y sub-GID para tu usuario sin privilegios, debes configurarlos para ejecutar AlloyDB Omni sin root.
Si usas un sistema Debian, instala los archivos binarios
newuidmap
ynewgidmap
.apt-get install -y uidmap
Añade una entrada
subuid
para 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
subgid
para 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.
Crear 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_DIR
Podman
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIR
Sustituye 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 gpt
parted -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
ext4
para 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 archivosext4
es 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/fstab
para que el disco se monte después de reiniciar.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
systemctl daemon-reload
mount MOUNT_POINT
Sustituye las siguientes variables:
FS_LABEL
: etiqueta del sistema de archivos. La longitud máxima de una etiqueta del sistema de archivosext4
es 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_DIR
chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR
Sustituye 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: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
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 usuariopostgres
del 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 puerto5432
el contenedor. Para usar el puerto predeterminado de PostgreSQL en la máquina host, especifica5432
.
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.