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:
- Lee Planifica la instalación de AlloyDB Omni en una VM.
- 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 quepostgres
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.
Si usas un sistema Debian, instala los objetos binarios
newuidmap
ynewgidmap
.apt-get install -y uidmap
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.
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.
Si usas Docker, ejecuta el siguiente comando como ROOTLESS_USER.
/usr/bin/dockerd-rootless-setuptool.sh install
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.
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
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.
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.
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 archivosext4
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.
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 archivosext4
es de 16 caracteres.MOUNT_POINT
: Es la ruta de acceso 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.
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 usuariopostgres
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 puerto5432
. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica5432
.
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:
CONTAINER_NAME
: Es el nombre que usaste para el directorio en Crea el directorio en el que AlloyDB Omni almacena los datos.
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.