Instalar o AlloyDB Omni em uma VM

Selecione uma versão da documentação:

Nesta página, descrevemos como fazer instalações de instância única do AlloyDB Omni em qualquer VM do Linux que seja compatível com ambientes de execução de contêineres. Se você precisar de uma configuração de várias instâncias do AlloyDB Omni, consulte Alta disponibilidade e capacidade de recuperação de dados.

Antes de começar

Antes de instalar o AlloyDB Omni, verifique se você atende aos requisitos a seguir.

Planejar a instalação

Antes de instalar o AlloyDB Omni na sua VM, faça o seguinte:

  1. Leia Planejar a instalação do AlloyDB Omni em uma VM.
  2. Leia Executar o AlloyDB Omni com ou sem acesso root e conclua as etapas necessárias para o acesso root ou sem acesso root, dependendo do ambiente escolhido.

Escolher uma opção de download ou instalação

Escolha uma das seguintes opções de download e instalação:

Mídia Locais de download e guias de instalação Implantação em
Imagem do Debian DockerHub (tags)
  • Docker, Podman. É possível executar essas ferramentas de contêinerização como um contêiner em qualquer máquina virtual (VM).
Imagem UBI (Red Hat) Catálogo do ecossistema da Red Hat
  • ambiente Red Hat. Execute isso como um contêiner.

Executar o AlloyDB Omni com ou sem raiz

Você pode executar o AlloyDB Omni usando o Docker ou o Podman. É possível executar esses mecanismos de contêiner como rootful ou rootless. "Rootful" se refere a executar o Docker ou o Podman como o usuário raiz, enquanto "rootless" se refere a executar essas imagens de contêiner como um usuário não raiz ou sem privilégios.

O modo escolhido depende dos requisitos e preferências que você tem para o ambiente. Se a simplicidade for importante, o rootful pode ser a opção certa para você. Se você precisar da segurança de um usuário sem privilégios, o rootless pode ser a escolha certa.

Se você decidir executar um ambiente rootful, precisará decidir como gerenciar o mapeamento de usuários entre o contêiner e a máquina host. Na prática, o AlloyDB Omni executa processos como o usuário postgres, que tem um UID e um GID de 999. Isso significa que você tem duas opções para gerenciar o mapeamento de usuários:

  • Não fazer nada. postgres vai continuar não sendo mapeado para nenhum usuário na máquina host.
  • Crie um usuário e um grupo de usuários com UID e GID de 999 para que postgres seja mapeado para esse usuário e grupo de usuários.

Para ambientes sem raiz, postgres é mapeado para um sub-UID e um sub-GID a que o usuário e o grupo de usuários do host têm acesso, conforme definido nos arquivos /etc/subuid e /etc/subgid. Isso significa que você não precisa gerenciar o mapeamento de usuários.

(Sem raiz) Configurar intervalos de sub-UID e sub-GID

  1. Se você estiver usando RHEL, CentOS ou Fedora, siga estas etapas:

    1. Instale o programa utilitário de linha de comando iptables executando o comando sudo dnf install -y iptables.
    2. Para qualquer versão do RHEL anterior à 9, instale o pacote fuse-overlayfs executando o comando sudo dnf install -y fuse-overlayfs.
  2. Se a imagem do Linux não tiver intervalos de sub-UID e sub-GID configurados para o usuário sem privilégios, configure esses intervalos para executar o AlloyDB Omni sem raiz.

  3. Se você estiver em um sistema Debian, instale os binários newuidmap e newgidmap.

    apt-get install -y uidmap
    
  4. Adicione uma entrada subuid para seu usuário sem raiz.

    echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
    

    Substitua as seguintes variáveis:

    • ROOTLESS_USER: o usuário que você quer usar para executar o AlloyDB Omni.
    • SUB_UID_RANGE_START: número menor do intervalo de sub-UIDs que você quer registrar para seu usuário.
    • SUB_UID_RANGE_COUNT: quantidade de sub-UIDs que você quer registrar para seu usuário. Esse valor precisa ser pelo menos 999.
  5. Adicione uma entrada subgid para seu usuário sem raiz.

    echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
    

    Substitua as seguintes variáveis:

    • ROOTLESS_USER: o usuário que você quer usar para executar o AlloyDB Omni.
    • SUB_GID_RANGE_START: número mais baixo do intervalo de sub-GIDs que você quer registrar para seu usuário.
    • SUB_GID_RANGE_COUNT: quantidade de sub-GIDs que você quer registrar para seu usuário. Esse valor precisa ser pelo menos 999.
  6. Se você quiser que a instância do AlloyDB Omni seja executada enquanto o usuário não está conectado, execute o seguinte comando.

    loginctl enable-linger ROOTLESS_USER
    

    Substitua a seguinte variável:

    • ROOTLESS_USER: o usuário que você quer usar para executar o AlloyDB Omni.
  7. Se você estiver usando o Docker, execute o comando a seguir como ROOTLESS_USER:

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  8. Abra um novo shell para que as mudanças de sub-UID e sub-GID entrem em vigor.

Criar um diretório em que o AlloyDB Omni armazena dados

Se você estiver usando um sistema de armazenamento que faz mais do que apenas executar o AlloyDB Omni, crie o diretório do AlloyDB Omni no sistema de arquivos atual do dispositivo. Caso contrário, crie um novo sistema de arquivos no seu dispositivo dedicado.

Sistema de arquivos atual

Docker

mkdir -p DATA_DIR

Docker

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Substitua as seguintes variáveis:

  • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.

Dispositivo dedicado

  1. Crie um diretório no host em que o disco será ativado.

    mkdir -p MOUNT_POINT
    

    Substitua a seguinte variável:

    • MOUNT_POINT: caminho do diretório de nível superior que deve conter sua instância do AlloyDB Omni.
  2. Crie uma tabela de partição gpt com uma única partição no dispositivo de disco.

    parted -s DEVICE_PATH mklabel gpt
    parted -s DEVICE_PATH mkpart primary 0% 100%

    Substitua a seguinte variável:

    • DEVICE_PATH: caminho atribuído pelo sistema operacional ao dispositivo de disco.
  3. Crie um sistema de arquivos no dispositivo de disco. Recomendamos usar o sistema de arquivos ext4 para o AlloyDB Omni.

    mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
    

    Substitua as seguintes variáveis:

    • FS_LABEL: rótulo do sistema de arquivos. O tamanho máximo de um rótulo do sistema de arquivos ext4 é de 16 caracteres.
    • PARTITION_PATH: caminho para a partição de disco usada para armazenar os dados do contêiner.
  4. Monte o dispositivo e crie uma entrada no arquivo /etc/fstab para que o disco seja montado após uma reinicialização.

    echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
    systemctl daemon-reload
    mount MOUNT_POINT

    Substitua as seguintes variáveis:

    • FS_LABEL: rótulo do sistema de arquivos. O tamanho máximo de um rótulo do sistema de arquivos ext4 é de 16 caracteres.
    • MOUNT_POINT: caminho do diretório de nível superior que deve conter sua instância do AlloyDB Omni.
  5. Crie um diretório de dados no sistema de arquivos específico do contêiner.

    Rootful

    mkdir -p DATA_DIR
    

    Rootless

    mkdir -p DATA_DIR
    chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    Substitua as seguintes variáveis:

    • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
    • ROOTLESS_USER: se você estiver usando um ambiente sem raiz, esse é o usuário que você quer que seja o proprietário do diretório.
    • ROOTLESS_GROUP: se você estiver usando um ambiente sem raiz, esse será o grupo que vai ser proprietário do diretório.

Criar o contêiner

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

Substitua as seguintes variáveis:

  • CONTAINER_NAME: o nome usado para o diretório em Criar diretório em que o AlloyDB Omni armazena dados.
  • NEW_PASSWORD: senha atribuída ao usuário postgres do novo contêiner após a criação.
  • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  • HOST_PORT: porta TCP na máquina host em que o contêiner vai publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique 5432.
  • IMAGE_TAG: use 16.3.0 para a imagem mais recente do Debian ou 16.3.0-ubi para a imagem mais recente da UBI.

Conectar-se à instância

Dependendo do seu ambiente, é possível se conectar à instância do AlloyDB Omni localmente ou remotamente.

Conectar localmente

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

Substitua a seguinte variável:

Conectar remotamente

psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN

Substitua as seguintes variáveis:

  • HOST_PORT: porta TCP usada em Criar o contêiner.
  • IP_ADDRESS_OR_FQDN: endereço IP ou nome de domínio totalmente qualificado do host em que o AlloyDB Omni está sendo executado.

Depois de executar esse comando, você vai precisar informar a senha da conta postgres. Digite a senha usada em Criar o contêiner.

A seguir