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:
- Leia o artigo Planeie a instalação do AlloyDB Omni numa VM.
- 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) | |
Imagem UBI (Red Hat) | Red Hat Ecosystem Catalog |
|
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 quepostgres
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.
Se estiver num sistema Debian, instale os binários
newuidmap
enewgidmap
.apt-get install -y uidmap
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.
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.
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.
Se estiver a usar o Docker, execute o seguinte comando como ROOTLESS_USER.
/usr/bin/dockerd-rootless-setuptool.sh install
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
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.
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.
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 ficheirosext4
é de 16 carateres.PARTITION_PATH
: caminho para a partição do disco usada para armazenar os dados do contentor.
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 ficheirosext4
é de 16 carateres.MOUNT_POINT
: caminho do diretório de nível superior que deve conter a sua instância do AlloyDB Omni.
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 utilizadorpostgres
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 porta5432
. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432
.
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:
CONTAINER_NAME
: o nome que usou para o diretório em Crie um diretório onde o AlloyDB Omni armazena dados.
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.