Instalar o AlloyDB Omni usando o orquestrador RPM

Selecione uma versão da documentação:

Nesta página, descrevemos como instalar a pilha de software do AlloyDB Omni e os componentes de gerenciamento usando o orquestrador do AlloyDB Omni.

Antes de começar

Antes de instalar os componentes, verifique se você concluiu os pré-requisitos a seguir:

  • Instale o orquestrador: verifique se a coleção do Ansible ou a CLI do orquestrador do AlloyDB Omni está instalada no nó de controle.
  • Provisione máquinas: é necessário ter máquinas virtuais RHEL9 provisionadas de acordo com a arquitetura escolhida, como independente ou de alta disponibilidade.
  • Configure a rede e o firewall: verifique se todas as portas necessárias estão abertas entre os nós. Isso inclui 5432 para tráfego de banco de dados, 2379/2380 para etcd e as portas de gerenciamento 6703, 6702 e 6700 usadas pelo Cluster Manager e Node Manager.
  • Verifique as dependências do pacote de software: se você gerenciar pacotes de software por um repositório Yum particular, siga as instruções do gerenciamento do repositório para incluir arquivos RPM dependentes no repositório.

Preparar o inventário de especificação de implantação

O orquestrador usa um arquivo de especificação de implantação no formato de inventário do Ansible para entender a topologia do cluster. Crie um arquivo chamado deployment_spec.yaml com os detalhes do nó.

alloydbomni:
  vars:
    cluster_manager:
      name: "MANAGEMENT_CLUSTER_NAME"
    etcd:
      setup: SETUP_ETCD
      config_forcewrite: FORCE_OVERWRITE_ETCD
      # version: ETCD_VERSION  # Optional: defaults to the latest version
      # repo_url: ETCD_REPOSITORY_URL  # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni:
      major_version: "PG_VERSION" # Mandatory: for example, 18
      # version: ALLOYDB_OMNI_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL     # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_monitor:
      # version: ALLOYDB_OMNI_MONITOR_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_cluster_manager:
      # version: ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION      # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_node_manager:
      # version: ALLOYDB_OMNI_NODE_MANAGER_VERSION         # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbouncer:
      # version: ALLOYDB_OMNI_PGBOUNCER_VERSION    # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbackrest:
      # version: ALLOYDB_OMNI_PGBACKREST_VERSION   # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional

  children:
    primary_instance_nodes:
      hosts:
        DB_HOST_1:
        DB_HOST_2:
        DB_HOST_3:
    load_balancer_nodes:    # Optional. Host group for load balancer. If empty, no load balancer is configured.
      hosts:
        LB_HOST_1:
        LB_HOST_2:
    etcd_nodes:     # Optional: Host group where etcd is set up
      hosts:
        ETCD_HOST_1:
        ETCD_HOST_2:
        ETCD_HOST_3:
    cluster_manager_nodes:    # Optional: Host group for cluster manager
      hosts:
        CM_HOST_1:
        CM_HOST_2:
        CM_HOST_3:

Substitua:

  • MANAGEMENT_CLUSTER_NAME: o nome do cluster de gerenciamento. Ele pode ser o mesmo nome do cluster de banco de dados se eles forem instalados nos mesmos nós, por exemplo, my-management-cluster.
  • SETUP_ETCD: especifica se o orquestrador precisa configurar e inicializar o cluster etcd. Quando definido como true, o orquestrador realiza a configuração e inicialização etcd iniciais nos nós etcd designados. Se nenhum nó etcd for definido no deployment_spec, ele será configurado como etcd nos nós do gerenciador de clusters. Esse parâmetro corresponde à chave etcd.setup na especificação de implantação.
  • FORCE_OVERWRITE_ETCD: determina se um arquivo de configuração etcd atual será substituído durante o processo de configuração. Defina como true para substituir o arquivo de configuração atual nos nós de destino. Caso contrário, defina como false(o padrão) para manter a configuração atual e evitar interrupções de serviço não intencionais.
  • ETCD_VERSION: a versão do pacote etcd a ser instalada, por exemplo, 3.4.13.
  • ETCD_REPOSITORY_URL: o URL do repositório que contém os RPMs etcd.
  • PG_VERSION: a versão principal do PostgreSQL da instalação do AlloyDB Omni, por exemplo, 18.
  • ALLOYDB_OMNI_VERSION: a versão do mecanismo de banco de dados do AlloyDB Omni a ser instalada, por exemplo, 18.1.0. Se omitido, o orquestrador instala a versão mais recente disponível.
  • ALLOYDB_OMNI_COMMON_REPO_URL: o URL do repositório comum que contém os RPMs do AlloyDB Omni, monitor, PgBouncer e pgBackRest.
  • GPG_KEY: o local da chave pública do Google para verificação do GNU Privacy Guard (GPG), por exemplo, https://dl.google.com/linux/linux_signing_key.pub. Isso também pode ser definido como um caminho se a chave for transferida por download para um arquivo em todas as VMs, por exemplo, /tmp/linux_signing_key.pub.
  • ALLOYDB_OMNI_MONITOR_VERSION: a versão do pacote de monitor do AlloyDB Omni a ser instalada. O padrão é a versão mais recente disponível.
  • ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION: a versão do gerenciador de clusters do AlloyDB Omni a ser instalada. Se omitido, o orquestrador instala a versão mais recente disponível.
  • ALLOYDB_OMNI_ORCHESTRATOR_REPO_URL: o URL do repositório que contém os RPMs do gerenciador de clusters e do gerenciador de nós do AlloyDB Omni.
  • ALLOYDB_OMNI_NODE_MANAGER_VERSION: a versão do gerenciador de nós do AlloyDB Omni a ser instalada. Se omitido, o orquestrador instala a versão mais recente disponível.
  • ALLOYDB_OMNI_PGBOUNCER_VERSION: a versão do pacote PgBouncer a ser instalada.
  • ALLOYDB_OMNI_PGBACKREST_VERSION: a versão do pacote pgBackRest a ser instalada.
  • DB_HOST_1, DB_HOST_2, DB_HOST_3: os endereços IP ou nomes de domínio totalmente qualificados (FQDNs) das máquinas virtuais designadas como nós de banco de dados.
  • LB_HOST_1, LB_HOST_2: os endereços IP ou nomes de domínio totalmente qualificados (FQDNs) das máquinas virtuais designadas como nós do balanceador de carga.
  • ETCD_HOST_1, ETCD_HOST_2, ETCD_HOST_3: os endereços IP ou FQDNs das máquinas virtuais designadas como nós etcd.
  • CM_HOST_1, CM_HOST_2, CM_HOST_3: os endereços IP ou FQDNs das máquinas virtuais designadas como nós do gerenciador de clusters.

Instalar os componentes

É possível instalar os componentes do AlloyDB Omni e as dependências deles usando o Ansible ou instalando manualmente os pacotes de software em cada nó.

Instalar componentes do AlloyDB Omni usando o Ansible

O método recomendado para instalação é usar a função do Ansible fornecida.

  1. Crie um manual chamado install.yaml que faça referência à função de instalação da coleção do orquestrador.

    - name: Install AlloyDB Omni cluster components
      hosts: all
      become: true
      vars:
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: SSH_KEY_PATH
      roles:
        - role: google.alloydbomni_orchestrator.install
    

    Substitua:

    • SSH_USER: o nome de usuário que você usa para se conectar aos nós no cluster usando SSH.
    • SSH_KEY_PATH: o caminho para o arquivo de chave privada SSH no nó de controle, por exemplo, ~/.ssh/id_rsa.
  2. Para fazer o download e instalar os componentes em todos os nós especificados, execute o manual usando o arquivo de inventário.

    ansible-playbook -i deployment_spec.yaml install.yaml
    

Instalar componentes do AlloyDB Omni sem o Ansible

Se você não tiver um ambiente do Ansible e planeja usar a CLI do Orchestrator para gerenciamento de clusters, será necessário instalar todos os componentes manualmente, já que a CLI do Orchestrator não oferece instalação automatizada de componentes.

Instalar componentes em todos os nós

A tabela abaixo lista todos os tipos de nós e os componentes correspondentes (RPMs) a serem instalados.

Nó Componentes de software (RPM) Observação
control node alloydbomni_orchestrator
primary_instance_nodes alloydbomni18
alloydbomni_monitor
alloydbomni_node_manager
keepalived
pgbackrest
pgbouncer
O Keepalived e o pgbouncer são necessários apenas para ambientes em que não há balanceadores de carga.
etcd_nodes etcd O ETCD pode ser instalado em nós do gerenciador de clusters quando não há nós dedicados para o ETCD.
cluster_manager_nodes alloydbomni_cluster_manager O Cluster Manager pode ser instalado nos nós do banco de dados (primary_instance_nodes) quando não há nós dedicados para o Cluster Manager.
load_balancer_nodes alloydbomni_node_manager
haproxy
keepalived
pgbouncer
O Keepalived e o pgbouncer são instalados em nós do balanceador de carga apenas para o ambiente em que há balanceadores de carga configurados.

Comandos de instalação:

  • REPO_GPG_KEY: local da chave pública do Google para verificação do GPG, por exemplo, https://dl.google.com/linux/linux_signing_key.pub. Também pode ser definido como um caminho de arquivo depois de transferido por download e colocado em todas as VMs, por exemplo, file:///tmp/linux_signing_key.pub.

Instalar componentes do AlloyDB Omni em nós etcd

  1. Em todos os nós etcd, crie um arquivo de configuração do repositório YUM chamado /etc/yum.repos.d/alloydb-etcd.repo:

    [etcd]
    name=AlloyDB Omni ETCD
    baseurl=ETCD_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. Instale etcd:

    sudo dnf install -y etcd
    
  3. Inicialize etcd editando o arquivo de configuração. É necessário inicializar etcd antes de instalar os componentes do AlloyDB Omni.

    Em etcd_nodes, edite /etc/etcd/etcd.conf:

    ETCD_NAME=ETCD_HOST
    ETCD_DATA_DIR=/var/lib/etcd/data
    ETCD_LISTEN_PEER_URLS=https://ETCD_HOST_IP:2380,https://127.0.0.1:2380
    ETCD_LISTEN_CLIENT_URLS=https://ETCD_HOST_IP:2379,https://127.0.0.1:2379
    ETCD_INITIAL_ADVERTISE_PEER_URLS=https://ETCD_HOST_IP:2380
    ETCD_ADVERTISE_CLIENT_URLS=https://ETCD_HOST_IP:2379
    
    ETCD_INITIAL_CLUSTER=ETCD_HOST_1=https://ETCD_HOST_IP_1:2380,ETCD_HOST_2=https://ETCD_HOST_IP_2:2380,ETCD_HOST_3=https://ETCD_HOST_IP_3:2380
    
    ETCD_INITIAL_CLUSTER_STATE=new
    ETCD_INITIAL_CLUSTER_TOKEN=CLUSTER_NAME
    ETCD_ENABLE_V2=true
    
    ETCD_CLIENT_CERT_AUTH=true
    ETCD_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    ETCD_PEER_CLIENT_CERT_AUTH=true
    ETCD_PEER_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_PEER_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_PEER_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    

    Em que:

    • ETCD_HOST: host etcd atual.
    • ETCD_HOST_IP: IP do host etcd atual.
    • ETCD_HOST_1: o nome do primeiro nó no cluster etcd.
    • ETCD_HOST_IP_1: o endereço IP do primeiro nó no cluster etcd.
    • ETCD_HOST_2: o nome do segundo nó no cluster etcd.
    • ETCD_HOST_IP_2: o endereço IP do segundo nó no cluster etcd.
    • ETCD_HOST_3: o nome do terceiro nó no cluster etcd.
    • ETCD_HOST_IP_3: o endereço IP do terceiro nó no cluster etcd.
    • CLUSTER_NAME: nome do cluster de acordo com o plano de controle.
  4. Configure o firewall para permitir a comunicação TCP nas portas 2379 e 2380.

  5. Inicie o etcd:

    sudo systemctl enable etcd
    sudo systemctl start etcd
    

Instalar componentes do AlloyDB Omni em nós de instância principal

  1. Em todos os primary_instance_nodes, crie um arquivo de configuração do repositório YUM chamado /etc/yum.repos.d/alloydb-omni.repo:

    [alloydbomni_core]
    name=AlloyDB Omni Core
    baseurl=ALLOYDB_OMNI_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
    [alloydbomni_common]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. Instale alloydbomni18, alloydbomni_monitor, alloydbomni_node_manager e pgbackrest em todos os primary_instance_nodes:

    sudo dnf install -y alloydbomni18 alloydbomni_monitor alloydbomni_node_manager pgbackrest
    
  3. (Opcional) Se você não tiver nós do balanceador de carga (load_balancer_nodes), instale pgbouncer e keepalived:

    sudo dnf install -y pgbouncer keepalived
    
  4. Depois que alloydbomni_node_manager for instalado, alloydbomni_node_manager precisará ser configurado antes de iniciar os serviços. Verifique se o arquivo de especificação de implantação (deployment_spec.yaml) foi copiado para todas as VMs respectivas:

    sudo /usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml
    

Instalar componentes do AlloyDB Omni em nós do gerenciador de clusters

  1. Em todos os nós do gerenciador de clusters, crie um arquivo de configuração do repositório YUM chamado /etc/yum.repos.d/alloydb-orchestrator.repo:

    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. Instale o gerenciador de clusters:

    sudo dnf install -y alloydbomni_cluster_manager
    
  3. Depois que alloydbomni_cluster_manager for instalado e etcd for inicializado, alloydbomni_cluster_manager precisará ser configurado antes de iniciar os serviços.

    sudo /usr/local/bin/alloydbomni_cm_config apply -d deployment_spec.yaml
    

Instalar componentes do AlloyDB Omni em nós do balanceador de carga

  1. Em todos os nós do balanceador de carga, crie um arquivo de configuração do repositório YUM chamado /etc/yum.repos.d/alloydb-omni-lb.repo:

    [pgbouncer]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_node_manager]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. Instale os componentes do balanceador de carga:

    sudo dnf install -y alloydbomni_node_manager keepalived pgbouncer haproxy
    
  3. Depois que alloydbomni_node_manager for instalado e etcd for inicializado, alloydbomni_node_manager precisará ser configurado antes de iniciar os serviços. Verifique se o arquivo de especificação de implantação (deployment_spec.yaml) foi copiado para todas as VMs respectivas:

    sudo /usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml
    

Resumo dos componentes instalados do AlloyDB Omni

O processo de instalação implanta vários pacotes RPM importantes, dependendo do tipo de nó:

Tipo de nó Componentes instalados Observações
Nós de instância principal alloydbomniPG_VERSION, alloydbomni_monitor, alloydbomni_node_manager, pgbouncer, pgbackrest Componentes para o mecanismo de banco de dados, monitoramento e gerenciamento.
Nós do balanceador de carga haproxy Opcional. A instalação será ignorada se os nós do balanceador de carga não estiverem disponíveis.
Nós do gerenciador de clusters alloydbomni_cluster_manager Pode ser instalado em nós de banco de dados se nenhum nó dedicado estiver disponível. Se os nós do gerenciador de clusters não forem especificados, o componente do gerenciador de clusters será instalado nos primary_instance_nodes.
Nós etcd etcd Pode ser instalado em nós do gerenciador de clusters, se necessário. Se os nós etcd não forem especificados, etcd será instalado nos cluster_manager_nodes

Desinstalar os componentes

Se você precisar remover a instalação do AlloyDB Omni do seu ambiente, por exemplo, para desativar um cluster ou se preparar para uma reinstalação limpa, desinstale todos os componentes de software. Desinstale o AlloyDB Omni usando o Ansible ou removendo manualmente os RPMs de cada nó.

Desinstalar componentes do AlloyDB Omni usando o Ansible

Para remover os componentes da pilha de software do AlloyDB Omni usando o Ansible, use o arquivo de inventário atual e um manual que faça referência à função google.alloydbomni_orchestrator.uninstall.

  1. Crie um manual chamado uninstall.yaml.

    - name: Uninstall AlloyDB Omni cluster
      hosts: all
      become: true
      vars:
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: SSH_KEY_PATH
      roles:
        - role: google.alloydbomni_orchestrator.uninstall
    

    Substitua:

    • SSH_USER: o nome de usuário que você usa para se conectar aos nós no cluster usando SSH.
    • SSH_KEY_PATH: o caminho para o arquivo de chave privada SSH no nó de controle, por exemplo, ~/.ssh/id_rsa.
  2. Execute o manual. É necessário transmitir cleanup_data=true e cleanup_config=true como variáveis extras para remover os arquivos de configuração e o diretório de dados.

    ansible-playbook -i deployment_spec.yaml uninstall.yaml -e "cleanup_data=true cleanup_config=true"
    

Desinstalar componentes do AlloyDB Omni manualmente

Se você estiver usando a CLI do orquestrador do AlloyDB Omni, será necessário remover manualmente os RPMs de cada nó.

  1. Em todos os nós de banco de dados, execute o seguinte comando:

    sudo dnf remove -y alloydbomni_node_manager alloydbomniPG_VERSION alloydbomni_monitor pgbackrest keepalived pgbouncer
    
  2. Em todos os nós do balanceador de carga, execute o seguinte comando:

    sudo dnf remove -y alloydbomni_node_manager keepalived haproxy pgbouncer
    
  3. Em todos os nós do gerenciador de clusters, execute o seguinte comando:

    sudo dnf remove -y alloydbomni_cluster_manager
    
  4. Opcional: em todos os nós etcd, execute o seguinte comando para desinstalar o etcd e limpar os dados etcd:

    sudo dnf remove -y etcd
    sudo rm -rf /var/lib/etcd/data
    

A seguir