Atualizar os componentes do cluster do orquestrador RPM

Selecione uma versão da documentação:

Esta página descreve como atualizar os pacotes de software do cluster de banco de dados do AlloyDB Omni, as configurações de recursos e o orquestrador de RPM em ambientes do Red Hat Enterprise Linux (RHEL).

Antes de começar

Verifique se você tem o arquivo de especificação da implantação, deployment_spec.yaml, que contém todos os detalhes dos componentes do nó e do cluster.

Fazer upgrade do orquestrador

O orquestrador gerencia seus clusters de banco de dados. É necessário fazer upgrade do orquestrador no nó de controle antes de fazer upgrade dos outros componentes do cluster.

Ansible

Se você gerencia sua infraestrutura usando playbooks do Ansible, siga estas etapas:

  1. Verifique a versão instalada da coleção google.alloydbomni_orchestrator no nó de controle executando o seguinte comando:

    ansible-galaxy collection list | grep alloydbomni_orchestrator
  2. Para substituir a versão atual, faça o download da versão estável mais recente do arquivo tar da coleção e execute uma instalação forçada:

    ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gz

    Substitua NEW_VERSION pela versão da nova coleção.

alloydbctl

Se você usa a ferramenta de linha de comando alloydbctl, siga estas etapas:

  1. Para verificar a versão do pacote instalado do orquestrador de RPM alloydbomni_orchestrator no nó de controle, execute o seguinte comando:

    rpm -q alloydbomni_orchestrator
  2. Faça upgrade do pacote de software no nó de controle usando o gerenciador de pacotes:

    sudo dnf upgrade alloydbomni_orchestrator

Atualizar componentes do cluster usando o Ansible

O Google recomenda que você atualize usando o papel do Ansible fornecido.

  1. Crie um playbook chamado update.yaml que referencie o papel update da coleção do orquestrador. Defina o valor do parâmetro update_action como update_rpm.

    Por padrão, o papel update atualiza o plano de controle e o plano de dados. Para atualizar apenas os componentes do plano de controle ou de dados, defina o parâmetro do outro plano como false.

    ---
    - hosts: all
      become: true
      vars:
        update_action: "update_rpm"
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: PRIVATE_KEY_PATH
        update_control_plane: true # Optional argument if you want to only update data plane components
        update_data_plane: true # Optional argument if you want to only update control plane components
      roles:
        - role: google.alloydbomni_orchestrator.update
    

    Substitua:

    • SSH_USER: o nome de usuário SSH que tem acesso aos nós do cluster.
    • PRIVATE_KEY_PATH: o caminho para o arquivo da chave SSH privada.
    • update_action: o escopo da atualização. Defina esse valor como update_rpm.
    • update_control_plane: opcional. Defina como false para atualizar apenas os componentes do plano de dados. O padrão é true.
    • update_data_plane: opcional. Defina como false para atualizar apenas os componentes do plano de controle. O padrão é true.
  2. Para realizar uma atualização em todos os nós especificados, execute o playbook com o arquivo de inventário:

    ansible-playbook -i DEPLOYMENT_SPEC update.yaml

    Substitua DEPLOYMENT_SPEC pelo caminho para o arquivo de especificação de implantação.

    Verifique se o arquivo de especificação da implantação define a versão instalada para cada componente no cluster. O papel de atualização atualiza os componentes com base em como você configura as versões deles no arquivo de inventário:

    • Se a versão de um componente corresponder à versão instalada, o papel de atualização não fará mudanças nesse componente.
    • Se você mudar a versão de um componente para uma versão de destino específica, ele atualizará o componente para essa versão.
    • Se você deixar o campo 'Version' de um componente vazio, ele atualizará o componente para a versão mais recente disponível no repositório configurado.

Atualizar componentes do cluster manualmente

Se você não estiver usando o orquestrador do Ansible ou quiser um controle granular sobre o processo de atualização, poderá atualizar os componentes do RPM manualmente para cada nó no cluster. Recomendamos realizar atualizações de software durante a janela de manutenção programada.

O processo de atualização manual envolve a atualização dos dois planos a seguir:

  • Plano de controle (componentes do orquestrador de RPM): o plano de controle é a camada que controla e gerencia os clusters de banco de dados. Em uma implantação de RPM, o plano de controle inclui cluster_manager, node_manager e etcd.

  • Plano de dados (cluster de banco de dados): o plano de dados contém os componentes do cluster de banco de dados, incluindo o próprio mecanismo de banco de dados do AlloyDB Omni, monitor, bem como serviços como pgBackRest, PgBouncer, keepalived e HAProxy. O upgrade do plano de dados aplica atualizações de versão do banco de dados, patches de segurança e melhorias de desempenho diretamente aos clusters de banco de dados.

Independentemente da arquitetura de referência, as etapas para atualizar o plano de controle permanecem as mesmas. É necessário atualizar os componentes do plano de controle antes de atualizar o plano de dados. As etapas para atualizar o plano de dados variam de acordo com a arquitetura de implantação do banco de dados.

Para atualizar um serviço ou pacote, siga estas etapas:

  1. Interrompa o serviço:

    sudo systemctl stop SERVICE
  2. Faça upgrade do pacote usando um dos seguintes comandos:

    • Para atualizar para a versão mais recente disponível:

      sudo dnf upgrade PACKAGE
    • Para atualizar para uma versão específica:

      sudo dnf upgrade PACKAGE-VERSION
  3. Inicie o serviço:

    sudo systemctl start SERVICE

Substitua:

  • SERVICE: o nome do serviço a ser interrompido e iniciado, por exemplo, pgbouncer ou keepalived.
  • PACKAGE: o nome do pacote a ser atualizado, por exemplo, pgbouncer ou alloydbomni18.
  • VERSION: a versão do pacote de destino a ser instalada, por exemplo 18.3.0 ou 18.3.0-2.rhel9.

Atualizar o plano de controle manualmente

Para atualizar o plano de controle, siga estas etapas nos nós designados:

  1. Para interromper o gerenciador de clusters em todos os nós do gerenciador de clusters, execute o seguinte comando:

    sudo systemctl stop alloydbomni_cluster_manager
  2. Para atualizar etcd em todos os nós do DCS, execute os seguintes comandos em sequência:

    sudo systemctl stop etcd
    sudo dnf upgrade etcd
    sudo systemctl start etcd
  3. Para atualizar o gerenciador de nós em todos os nós, execute os seguintes comandos em sequência:

    sudo systemctl stop alloydbomni_node_manager
    sudo dnf upgrade alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
  4. Depois de atualizar os componentes do plano de controle, você pode atualizar o gerenciador de clusters em todos os nós do gerenciador de clusters e reiniciá-lo, se necessário.

    sudo dnf upgrade alloydbomni_cluster_manager
    sudo systemctl start alloydbomni_cluster_manager

Atualizar o plano de dados manualmente

Para atualizar o plano de dados, atualize o banco de dados e os serviços auxiliares na ordem especificada para a arquitetura de implantação. Para cada serviço, é necessário seguir uma sequência rigorosa de interrupção do serviço, upgrade do pacote e início do serviço.

Siga as instruções da implantação dependendo da arquitetura de referência.

  1. Recupere o status do cluster usando o comando alloydbctl get e defina o formato de saída como YAML:

    alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml

    Substitua:

    • RESOURCE_TYPE: o tipo de recurso a ser inspecionado, por exemplo, DBCluster.
    • CLUSTER_NAME: o nome do cluster de banco de dados.
    • DEPLOYMENT_SPEC: o caminho para o arquivo de especificação de implantação.
  2. Na saída YAML, observe o instanceList na seção status.

    Encontre o nó que tem o papel definido como Primary. Todos os outros nós de banco de dados são nós de espera.

  3. Atualize todos os componentes do plano de dados em execução nos nós de espera primeiro e, em seguida, atualize esses componentes no nó principal. Siga estas etapas para atualizar os componentes do plano de dados em cada nó.

    1. Para atualizar o AlloyDB Omni, execute os seguintes comandos em sequência:

      sudo systemctl stop alloydbomni18
      sudo dnf upgrade alloydbomni18
      sudo systemctl start alloydbomni18
    2. Para atualizar o monitor, execute os seguintes comandos em sequência:

      sudo systemctl stop alloydbomni_monitor
      sudo dnf upgrade alloydbomni_monitor
      sudo systemctl start alloydbomni_monitor
    3. Para atualizar o pgBackRest, execute os seguintes comandos em sequência:

      sudo dnf upgrade pgbackrest
    4. Para atualizar o PgBouncer, execute os seguintes comandos em sequência:

      sudo systemctl stop pgbouncer
      sudo dnf upgrade pgbouncer
      sudo systemctl start pgbouncer
    5. Para atualizar o keepalived, execute os seguintes comandos em sequência:

      sudo systemctl stop keepalived
      sudo dnf upgrade keepalived
      sudo systemctl start keepalived
    6. Para atualizar o HAProxy, execute os seguintes comandos em sequência:

      sudo systemctl stop haproxy
      sudo dnf upgrade haproxy
      sudo systemctl start haproxy