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 VM, faça o seguinte:
- Leia Planejar a instalação do AlloyDB Omni em uma VM.
- Leia Executar o AlloyDB Omni com ou sem raiz e conclua as etapas necessárias para o modo com ou sem raiz, 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) | |
| Imagem UBI (Red Hat) | Red Hat Ecosystem Catalog |
|
Executar o AlloyDB Omni com ou sem raiz
É possível executar o AlloyDB Omni usando o Docker ou o Podman. Esses mecanismos de contêiner podem ser executados com ou sem raiz. O modo com raiz se refere à execução do Docker ou do Podman como usuário raiz, enquanto o modo sem raiz se refere à execução dessas imagens de contêiner como um usuário não raiz ou sem privilégios.
O modo escolhido depende dos requisitos e preferências do ambiente. Se a simplicidade for importante, o modo com raiz pode ser adequado para você. Se você precisar da segurança de um usuário sem privilégios, o modo sem raiz pode ser a escolha certa.
Se você decidir executar um ambiente com raiz, será necessário 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 GID de 999. Isso significa que você tem duas opções para gerenciar o mapeamento de usuários:
- Não fazer nada.
postgrescontinuará não mapeando para nenhum usuário na máquina host. - Crie um usuário e um grupo de usuários com UID e GID de
999para quepostgresseja mapeado para esse usuário e grupo.
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 não é necessário gerenciar o mapeamento de usuários.
(Sem raiz) Configurar intervalos de sub-UID e sub-GID
Se você estiver usando o RHEL, CentOS ou Fedora, siga estas etapas:
- Instale o programa de utilitário de linha de comando
iptablesexecutando o comandosudo dnf install -y iptables. - Para qualquer versão do RHEL anterior à 9, instale o pacote
fuse-overlayfsexecutando o comandosudo dnf install -y fuse-overlayfs.
- Instale o programa de utilitário de linha de comando
Se a imagem do Linux não tiver intervalos de sub-UID e sub-GID configurados para o usuário sem privilégios, será necessário configurar esses intervalos para executar o AlloyDB Omni sem raiz.
Se você estiver em um sistema Debian, instale os binários
newuidmapenewgidmap.sudo apt-get install -y uidmap
Adicione uma entrada
subuidpara o usuário sem raiz.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" | sudo tee -a /etc/subuid
Substitua as seguintes variáveis:
ROOTLESS_USER: usuário em que você quer executar o AlloyDB Omni.SUB_UID_RANGE_START: número mais baixo do intervalo de sub-UIDs que você quer registrar para o usuário.SUB_UID_RANGE_COUNT: quantidade de sub-UIDs que você quer registrar para o usuário. Esse valor precisa ser de pelo menos 999.
Adicione uma entrada
subgidpara o usuário sem raiz.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" | sudo tee -a /etc/subgid
Substitua as seguintes variáveis:
ROOTLESS_USER: usuário em que você quer executar o AlloyDB Omni.SUB_GID_RANGE_START: número mais baixo do intervalo de sub-GIDs que você quer registrar para o usuário.SUB_GID_RANGE_COUNT: quantidade de sub-GIDs que você quer registrar para o usuário. Esse valor precisa ser de pelo menos 999.
Se você quiser que a instância do AlloyDB Omni seja executada enquanto o usuário não está conectado, execute o comando a seguir.
sudo loginctl enable-linger ROOTLESS_USER
Substitua a seguinte variável:
ROOTLESS_USER: usuário em que você quer executar o AlloyDB Omni.
Se você estiver usando o Docker, execute o comando a seguir como ROOTLESS_USER:
/usr/bin/dockerd-rootless-setuptool.sh install
Abra um novo shell para que as alterações 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, poderá criar o diretório do AlloyDB Omni no sistema de arquivos atual do dispositivo. Caso contrário, é possível criar um novo sistema de arquivos no seu dispositivo dedicado.
Sistema de arquivos atual
Docker
sudo mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIRPodman
sudo mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIRSubstitua as seguintes variáveis:
DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
Dispositivo dedicado
Crie um diretório no host em que o disco será ativado.
sudo mkdir -p MOUNT_POINT
Substitua a seguinte variável:
MOUNT_POINT: caminho do diretório de nível superior que precisa conter a instância do AlloyDB Omni.
Crie uma tabela de partição gpt com uma única partição no dispositivo de disco.
sudo parted -s DEVICE_PATH mklabel gptsudo 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.
Crie um sistema de arquivos no dispositivo de disco. Recomendamos o uso do sistema de arquivos
ext4para o AlloyDB Omni.sudo 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 comprimento máximo de um rótulo de sistema de arquivosext4é de 16 caracteres.PARTITION_PATH: caminho da partição de disco usada para armazenar os dados do contêiner.
Ative o dispositivo e crie uma entrada no arquivo
/etc/fstabpara que o disco seja ativado após uma reinicialização.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | sudo tee -a /etc/fstabsudo systemctl daemon-reloadsudo mount MOUNT_POINTSubstitua as seguintes variáveis:
FS_LABEL: rótulo do sistema de arquivos. O comprimento máximo de um rótulo de sistema de arquivosext4é de 16 caracteres.MOUNT_POINT: caminho do diretório de nível superior que precisa conter a instância do AlloyDB Omni.
Crie um diretório de dados no sistema de arquivos específico do contêiner.
Com raiz
sudo mkdir -p DATA_DIR
Sem raiz
sudo mkdir -p DATA_DIRsudo chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIRSubstitua 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 será 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 você quer que seja o proprietário do diretório.
Criar o contêiner
Docker
sudo 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
sudo 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: nome usado para o diretório em Criar um diretório em que o AlloyDB Omni armazena dados.NEW_PASSWORD: senha atribuída ao novo usuáriopostgresdo 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 porta5432. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432.IMAGE_TAG: use16.3.0para a imagem mais recente do Debian ou16.3.0-ubipara a imagem UBI mais recente.
Conectar-se à instância
Dependendo do ambiente, é possível se conectar à sua instância do AlloyDB Omni local ou remotamente.
Conectar localmente
Docker
sudo docker exec -it CONTAINER_NAME psql -U postgres
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Podman
sudo podman exec -it CONTAINER_NAME psql -U postgres
Podman
podman exec -it CONTAINER_NAME psql -U postgres
Substitua a seguinte variável:
CONTAINER_NAME: nome usado para o diretório em Criar um diretório em que o AlloyDB Omni armazena dados.
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á em execução.
Depois de executar esse comando, você receberá uma solicitação para a senha da conta postgres. Insira a senha usada em
Criar o contêiner.