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 cada um, dependendo do ambiente escolhido.
Escolha 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) | Catálogo do ecossistema da Red Hat |
|
Executar o AlloyDB Omni com ou sem raiz
É possível executar o AlloyDB Omni usando o Docker ou o Podman. É possível executar esses mecanismos de contêiner com ou sem acesso root. "Rootful" se refere à execução do Docker ou do Podman como usuário raiz, enquanto "rootless" 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 das preferências que você tem para o ambiente. Se a simplicidade for importante, o modo rootful pode ser ideal 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, 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.
postgresvai continuar sem ser mapeado 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 de usuários.
Para ambientes sem raiz, postgres é mapeado para um sub-UID e um sub-GID que o
usuário host e o grupo de usuários podem acessar (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
Se você estiver usando o RHEL, o CentOS ou o Fedora, siga estas etapas:
- Instale o programa 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 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, configure 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 que você quer que execute o AlloyDB Omni.SUB_UID_RANGE_START: número menor 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. Este valor precisa ser 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 que você quer que execute o AlloyDB Omni.SUB_GID_RANGE_START: número menor 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. Este valor precisa ser pelo menos 999.
Se você quiser que a instância do AlloyDB Omni seja executada enquanto o usuário não estiver conectado, execute o comando a seguir.
sudo loginctl enable-linger ROOTLESS_USER
Substitua a seguinte variável:
ROOTLESS_USER: usuário que você quer que execute o AlloyDB Omni.
Se você estiver usando o Docker, execute o seguinte comando como ROOTLESS_USER:
/usr/bin/dockerd-rootless-setuptool.sh install
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 seu dispositivo. Caso contrário, crie 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á montado.
sudo mkdir -p MOUNT_POINT
Substitua a seguinte variável:
MOUNT_POINT: caminho do diretório de nível superior que deve 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 tamanho máximo de um rótulo de sistema de arquivosext4é de 16 caracteres.PARTITION_PATH: caminho para a partição de disco usada para armazenar os dados do contêiner.
Monte o dispositivo e crie uma entrada no arquivo
/etc/fstabpara que o disco seja montado 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 tamanho máximo de um rótulo de sistema de arquivosext4é de 16 caracteres.MOUNT_POINT: caminho do diretório de nível superior que deve conter a instância do AlloyDB Omni.
Crie um diretório de dados no sistema de arquivos específico do contêiner.
Com acesso root
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 é 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 é 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 diretório em que o AlloyDB Omni armazena dados.NEW_PASSWORD: senha atribuída ao usuáriopostgresdo 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 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 mais recente do UBI.
Conectar-se à instância
Dependendo do ambiente, é possível se conectar à instância do AlloyDB Omni localmente 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 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ê vai precisar informar a senha da conta
postgres. Digite a senha usada em
Criar o contêiner.