Instale o AlloyDB Omni numa VM

Selecione uma versão da documentação:

Esta página descreve como fazer instalações de instância única do AlloyDB Omni em qualquer VM Linux que suporte tempos de execução de contentores. Se precisar de uma configuração de várias instâncias do AlloyDB Omni, consulte o artigo Alta disponibilidade e resiliência de dados.

Antes de começar

Antes de instalar o AlloyDB Omni, certifique-se de que cumpre os seguintes requisitos.

Planeie a instalação

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

  1. Leia o artigo Planeie a instalação do AlloyDB Omni numa VM.
  2. Leia o artigo Execute o AlloyDB Omni com ou sem acesso de superutilizador e conclua todos os passos necessários para o acesso de superutilizador ou sem acesso de superutilizador, consoante o ambiente que escolher.

Escolha uma opção de transferência ou instalação

Escolha uma das seguintes opções de transferência e instalação:

Multimédia Localizações de transferência e guias de instalação Implementação para
Imagem Debian DockerHub (etiquetas)
  • Docker e Podman. Pode executar estas ferramentas de contentorização como um contentor em qualquer máquina virtual (VM).
Imagem UBI (Red Hat) Red Hat Ecosystem Catalog
  • Ambiente Red Hat. Execute isto como um contentor.

Execute o AlloyDB Omni com ou sem acesso root

Pode executar o AlloyDB Omni através do Docker ou do Podman. Ambos os motores de contentores podem ser executados com ou sem acesso root. Rootful refere-se à execução do Docker ou do Podman como utilizador root, enquanto rootless se refere à execução dos mesmos como utilizador não root ou sem privilégios.

O modo que escolher depende dos requisitos e das preferências que tem para o ambiente. Se a simplicidade for importante, o rootful pode ser adequado para si. Se precisar da segurança de um utilizador sem privilégios, o rootless pode ser a escolha certa.

Se decidir executar um ambiente com acesso root, tem de decidir como gerir o mapeamento de utilizadores entre o contentor e o computador anfitrião. Na prática, o AlloyDB Omni executa processos como o utilizador postgres, que tem um UID e um GID de 999. Isto significa que tem duas opções para gerir o mapeamento de utilizadores:

  • Não fazer nada. postgres vai continuar a não ser mapeado para nenhum utilizador na sua máquina anfitriã.
  • Crie um utilizador e um grupo de utilizadores com o UID e o GID de 999 para que postgres se mapeie para esse utilizador e grupo de utilizadores.

Para ambientes sem acesso de administrador, postgres é mapeado para um sub-UID e um sub-GID aos quais o utilizador e o grupo de utilizadores do anfitrião têm acesso (conforme definido nos ficheiros /etc/subuid e /etc/subgid). Isto significa que não tem de gerir o mapeamento de utilizadores.

(Sem acesso de raiz) Configure intervalos de sub-UID e sub-GID

Se a sua imagem Linux ainda não tiver intervalos de sub-UID e sub-GID configurados para o utilizador sem privilégios, tem de os configurar para executar o AlloyDB Omni sem acesso de superutilizador.

  1. Se estiver num sistema Debian, instale os binários newuidmap e newgidmap.

    apt-get install -y uidmap
    
  2. Adicione uma entrada subuid para o utilizador sem acesso de raiz.

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

    Substitua as seguintes variáveis:

    • ROOTLESS_USER: utilizador com o qual quer executar o AlloyDB Omni.
    • SUB_UID_RANGE_START: o número mais baixo do intervalo de sub-UIDs que quer registar para o seu utilizador.
    • SUB_UID_RANGE_COUNT: quantidade de sub-UIDs que quer registar para o seu utilizador. Este valor tem de ser, pelo menos, 999.
  3. Adicione uma entrada subgid para o utilizador sem acesso de raiz.

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

    Substitua as seguintes variáveis:

    • ROOTLESS_USER: utilizador com o qual quer executar o AlloyDB Omni.
    • SUB_GID_RANGE_START: o número mais baixo do intervalo de sub-GIDs que quer registar para o seu utilizador.
    • SUB_GID_RANGE_COUNT: quantidade de GIDs secundários que quer registar para o seu utilizador. Este valor tem de ser, pelo menos, 999.
  4. Se quiser que a sua instância do AlloyDB Omni seja executada quando o utilizador não tiver sessão iniciada, execute o seguinte comando.

    loginctl enable-linger ROOTLESS_USER
    

    Substitua a seguinte variável:

    • ROOTLESS_USER: utilizador com o qual quer executar o AlloyDB Omni.
  5. Se estiver a usar o Docker, execute o seguinte comando como ROOTLESS_USER.

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  6. Abra uma nova shell para que as alterações de sub-UID e sub-GID entrem em vigor.

Crie um diretório onde o AlloyDB Omni armazena dados

Se estiver a usar um sistema de armazenamento que faça mais do que apenas executar o AlloyDB Omni, pode criar o diretório do AlloyDB Omni no sistema de ficheiros existente do seu dispositivo. Caso contrário, pode criar um novo sistema de ficheiros no seu dispositivo dedicado.

Sistema de ficheiros existente

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 anfitrião onde os seus dados estão armazenados.

Dispositivo dedicado

  1. Crie um diretório no anfitrião onde o disco vai ser montado.

    mkdir -p MOUNT_POINT
    

    Substitua a seguinte variável:

    • MOUNT_POINT: caminho do diretório de nível superior que deve conter a sua instância do AlloyDB Omni.
  2. Crie uma tabela de partições 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 operativo ao dispositivo de disco.
  3. Crie um sistema de ficheiros no dispositivo de disco. Recomendamos a utilização do ext4 sistema de ficheiros para o AlloyDB Omni.

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

    Substitua as seguintes variáveis:

    • FS_LABEL: etiqueta para o sistema de ficheiros. O comprimento máximo de uma etiqueta do sistema de ficheiros ext4 é de 16 carateres.
    • PARTITION_PATH: caminho para a partição do disco usada para armazenar os dados do contentor.
  4. Monte o dispositivo e crie uma entrada no ficheiro /etc/fstab para que o disco seja montado após um reinício.

    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: etiqueta para o sistema de ficheiros. O comprimento máximo de uma etiqueta do sistema de ficheiros ext4 é de 16 carateres.
    • MOUNT_POINT: caminho do diretório de nível superior que deve conter a sua instância do AlloyDB Omni.
  5. Crie um diretório de dados no sistema de ficheiros específico do contentor.

    Com acesso root

    mkdir -p DATA_DIR
    

    Sem raízes

    mkdir -p DATA_DIR
    chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    Substitua as seguintes variáveis:

    • DATA_DIR: caminho do diretório do anfitrião onde os seus dados estão armazenados.
    • ROOTLESS_USER: se estiver a usar um ambiente sem acesso de superutilizador, este é o utilizador que quer que seja proprietário do diretório.
    • ROOTLESS_GROUP: se estiver a usar um ambiente sem acesso root, este é o grupo que quer que seja proprietário do diretório.

Crie o contentor

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

Substitua as seguintes variáveis:

  • CONTAINER_NAME: o nome que usou para o diretório em Crie um diretório onde o AlloyDB Omni armazena dados.
  • NEW_PASSWORD: palavra-passe atribuída ao utilizador postgres do novo contentor após a respetiva criação.
  • DATA_DIR: caminho do diretório do anfitrião onde os seus dados estão armazenados.
  • HOST_PORT: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta 5432. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique 5432.

Associe-se à sua instância

Consoante o seu ambiente, pode ligar-se à instância do AlloyDB Omni localmente ou remotamente.

Associe 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:

Ligue-se remotamente

psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN

Substitua as seguintes variáveis:

  • HOST_PORT: porta TCP que usou em Crie o contentor.
  • IP_ADDRESS_OR_FQDN: endereço IP ou nome de domínio totalmente qualificado para o anfitrião onde o AlloyDB Omni está em execução.

Depois de executar este comando, é-lhe pedida a palavra-passe da conta postgres. Introduza a palavra-passe que usou em Criar o contentor.

O que se segue?