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:
- Leia Planejar a instalação do AlloyDB Omni em uma VM.
- 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) | |
Imagem UBI (Red Hat) | Catálogo do ecossistema da Red Hat |
|
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 quepostgres
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
Se você estiver usando RHEL, CentOS ou Fedora, siga estas etapas:
- Instale o programa utilitário de linha de comando
iptables
executando o comandosudo dnf install -y iptables
. - Para qualquer versão do RHEL anterior à 9, instale o pacote
fuse-overlayfs
executando 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
newuidmap
enewgidmap
.apt-get install -y uidmap
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.
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.
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.
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 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
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.
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.
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 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/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 arquivosext4
é de 16 caracteres.MOUNT_POINT
: caminho do diretório de nível superior que deve conter sua instância do AlloyDB Omni.
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áriopostgres
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 porta5432
. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432
.IMAGE_TAG
: use16.3.0
para a imagem mais recente do Debian ou16.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:
CONTAINER_NAME
: o 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á 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.