Você pode usar o Velero Plugin for vSphere para fazer backup e restaurar cargas de trabalho em execução no vSphere Pods instalando o Velero Plugin for vSphere no Supervisor.

Visão geral

O Velero Plugin for vSphere fornece uma solução para fazer backup e restaurar vSphere with Tanzu cargas de trabalho. A solução requer a instalação e a configuração de vários componentes. Depois de instalar e configurar o Velero Plugin for vSphere no Supervisor, você poderá fazer backup e restaurar as cargas de trabalho do cluster TKG. Para cargas de trabalho persistentes, o Velero Plugin for vSphere permite tirar snapshots dos volumes persistentes.

Pré-requisitos: Obrigatório

Antes de instalar o Velero Plugin for vSphere em Supervisor, cumpra os seguintes pré-requisitos:
  • Supervisor está ativado com a rede NSX-T Data Center.
    Observação: O Operador vSphere do Velero é executado como um vSphere Pod e, portanto, requer uma rede NSX-T.
  • Supervisor versão 1.21.1 ou posterior.
  • vSphere Namespace é criado e configurado.
  • Você deve ser membro da função Administrador vSphere ou ter os seguintes privilégios vSphere:
    • SupervisorServices.Manage
    • Namespaces.Manage
    • Namespaces.Configure
  • Crie uma VM Linux na qual você possa executar a CLI do Velero. Ou use um host de salto Linux existente no qual você acessa Supervisor.
A captura de tela mostra o estado final de uma instalação do Velero Plugin for vSphere.
  • A rede NSX-T é usada para oferecer suporte à implantação de vSphere Pods
  • Uma VM do Data Manager é implantada
  • O Operador do Velero está ativado e em execução no namespace velero-vsphere-domain-cXX
  • Um namespace chamado velero está configurado
  • O Velero Plugin for vSphere está sendo executado como um vSphere Pod no namespace velero

A captura de tela mostra o plug-in do Velero no vSphere Client.

Etapa 0 (opcional): Criar uma rede dedicada para backup e restauração de tráfego

Embora não seja obrigatório, é recomendável que, para ambientes de produção, você separe o tráfego de backup e restauração do tráfego de rede de gerenciamento vSphere with Tanzu. Há dois aspectos para isso:
  • Marcar os hosts ESXi para oferecer suporte à cópia de arquivo de rede (NFC)
  • Configure a rede de backup e restauração usando NSX-T Data Center

Para configurar hosts vSphere ESXi para oferecer suporte a um transporte de dispositivo de bloco de rede dedicado (NBD), adicione uma VMkernel NIC em cada host ESXi no cluster vCenter Server em que o Gerenciamento de carga de trabalho está ativado e defina o vSphereBackupNFC no essa NIC. Quando a tag vSphereBackupNFC é aplicada ao tipo de NIC para um adaptador VMkernel, o tráfego de backup e restauração passa pela NIC virtual escolhida.

Para executar essa configuração, use o Virtual Disk Development Kit. Consulte a documentação do NBD.
Observação: Se o vSphereBackupNFC não estiver ativado na NIC do VMkernel, o tráfego de backup e restauração não será enviado na rede de backup e restauração, mesmo se você configurar uma. Se vSphereBackupNFC não estiver ativado, o tráfego trafegará na rede de gerenciamento vSphere.
Depois que a tag vSphereBackupNFC estiver ativada, configure a rede de backup e restauração usando NSX-T atualizando o vSphere Distributed Switch (vDS) existente para o cluster da seguinte maneira:
  • Em vSphere Client, selecione Menu > Rede ( Networking).
  • Selecione o vDS existente para o cluster.
  • Clique com o botão direito do mouse no vDS e selecione Distributed Port Group > New Distributed Port Group.
  • Crie um novo grupo de portas distribuídas chamado BackupRestoreNetwork.
  • Adicione um adaptador VMkernel ao grupo de portas distribuídas BackupRestoreNetwork.
  • Anexe todos os hosts ESXi no cluster vCenter em que o Workload Management está ativado ao grupo de portas distribuídas BackupRestoreNetwork.
  • Ative a tag vSphereBackupNFC.

Etapa 1: criar um repositório de objetos compatível com S3

Para backup e restauração de volumes persistentes, você precisa fornecer um armazenamento de objeto compatível com S3. O Velero oferece suporte a vários provedores de armazenamento de objetos.

Para instalar o Velero Plugin for vSphere, você precisará fornecer as seguintes informações sobre o armazenamento de objetos compatível com o S3:

Item de dados Valor de exemplo
s3Url http://my-s3-store.example.com
aws_access_key_id ACCESS-KEY-ID-STRING
aws_secret_access_key SECRET-ACCESS-KEY-STRING
Crie um nome de arquivo de segredos s3-credentials com as seguintes informações. Você fará referência a esse arquivo quando instalar o Velero Plugin for vSphere.
[default]
aws_access_key_id = ACCESS-KEY-ID-STRING
aws_secret_access_key = SECRET-ACCESS-KEY-STRING

O MinIO é um armazenamento de objetos compatível com S3 que é fácil de instalar e usar. O vSphere with Tanzu é fornecido com um MinIO Supervisor Service que você pode ativar. Para obter mais informações, consulte a publicação vSphere with TanzuServiços e cargas de trabalho.

Como alternativa, você pode instalar manualmente um servidor MinIO em uma VM Linux. Para obter instruções, consulte Instalar e configurar o Velero e o Restic autônomos em clusters TKG 2 em Supervisor.

Etapa 2: Instalar e configurar o Data Manager

Para facilitar o backup e a restauração usando o Velero Plugin for vSphere, implante uma ou mais VMs do Data Manager para mover dados de backup de volume persistente para dentro e para fora do armazenamento de objeto compatível com S3. O Data Manager move os dados de snapshot de volume do volume vSphere para o armazenamento remoto durável compatível com S3 no backup e do armazenamento remoto compatível com S3 para um volume vSphere durante a restauração.

Em um ambiente vSphere with Tanzu, instale o Data Manager como uma máquina virtual.
Observação: Não ligue a VM do Data Manager antes de ativar o Velero vSphere Operator.
  1. Usando o vSphere Client, clique com o botão direito do mouse no Datacenter em que o Gerenciamento de carga de trabalho está ativado e selecione Implantar modelo OVF.
  2. Digite o caminho para o arquivo OVA do Data Manager e carregue-o no vCenter Server: https://vsphere-velero-datamgr.s3-us-west-1.amazonaws.com/datamgr-ob-17253392-photon-3-release-1.1.ova.
  3. Nomeie a máquina virtual como DataManager, por exemplo.
  4. Selecione o recurso de processamento que é o cluster vCenter em que Supervisor está configurado.
  5. Revise os detalhes da implantação da VM e clique em Avançar.
  6. Aceite os contratos de licença e clique em Avançar.
  7. Selecione o armazenamento e clique em Avançar.
  8. Selecione a rede de destino para a VM do Data Manager.
    • Selecione BackupRestoreNetwork se você tiver configurado uma rede dedicada de backup e restauração.
    • Selecione a Rede de gerenciamento (Management Network) se você não tiver configurado uma rede dedicada de backup e restauração.
  9. Confirme as seleções e clique em Concluir para concluir o processo.
  10. Use o painel Tarefas Recentes para monitorar o progresso da implantação.
    Observação: Se você receber um erro informando que o "descritor OVF não está disponível", use o navegador Chrome.
  11. Depois que a VM do Data Manager for implantada, configure os parâmetros de entrada para a VM.
  12. Clique com o botão direito do mouse na VM e selecione Edit Settings.
  13. Na guia Hardware Virtual, para Unidade de CD/DVD, altere de Dispositivo host (Host Device) para Dispositivo cliente (Client Device).
    Observação: Se você não fizer isso, não poderá salvar as definições de configuração avançadas necessárias.
  14. Na guia Editar configurações (Edit Settings) > Parâmetros avançados ( Advanced Parameters), selecione Avançado (Advanced) > Editar parâmetros de configuração (Edit Configuration Parameters).
  15. Defina os parâmetros de entrada para cada uma das seguintes configurações:
    Parâmetro Valor
    guestinfo.cnsdp.vcUser Tenha o nome de usuário vCenter Server com privilégios suficientes para implantar VMs.
    guestinfo.cnsdp.vcAddress Digite o endereço IP ou FQDN vCenter Server.
    guestinfo.cnsdp.vcPasswd Digite a senha do usuário vCenter Server.
    guestinfo.cnsdp.vcPort O padrão é 443. Não altere esse valor.
    guestinfo.cnsdp.wcpControlPlaneIP Digite o endereço IP do Cluster do Supervisor.

    Obtenha esse valor navegando até o cluster vCenter em que o Gerenciamento de carga de trabalho está ativado e selecionando Configurar (Configure) > Namespaces ( Namespaces) > Rede (Network) > Rede de gerenciamento (Management Network) > Endereço IP inicial ( Starting IP Address)

    guestinfo.cnsdp.updateKubectl O padrão é false. Não altere esse valor.
    guestinfo.cnsdp.veleroNamespace O padrão é velero e você deve deixá-lo como tal, a menos que tenha um motivo convincente para alterá-lo. Mais tarde no processo, você criará um Namespace vSphere no Cluster do Supervisor com o nome velero. Esses nomes devem corresponder.
    guestinfo.cnsdp.datamgrImage Se não estiver configurado (não definido), o sistema, por padrão, extrairá a imagem do contêiner do Docker Hub em vsphereveleroplugin/data-manager-for-plugin:1.1.0
  16. Clique em OK para salvar a configuração e em OK novamente para salvar as configurações da VM.
    Observação: Se você não tiver alterado a unidade de CD/DVD de Dispositivo host (Host Device) para Dispositivo cliente (Client Device), não poderá salvar as configurações. Se for esse o caso, cancele a operação, altere a unidade e repita as definições de configuração avançadas.
  17. Não ligue a VM do Data Manager até ativar o Velero vSphere Operator (próxima seção).

Etapa 3: instalar o serviço Velero vSphere Operator no Supervisor

vSphere with Tanzu fornece o Velero vSphere Operator como um Serviço vSphere. O serviço Velero vSphere Operator funciona com o Velero Plugin for vSphere para oferecer suporte ao backup e à restauração de cargas de trabalho do Kubernetes, incluindo a criação de snapshots de volumes permanentes. Para obter mais informações sobre Supervisor Services, consulte a publicação vSphere with Tanzu Services and Workloads.

Conclua a operação a seguir para registrar a especificação do Velero vSphere Operator com o vCenter Server em que o Workload Management está ativado e para instalar o Velero vSphere Operator } como um serviço em Supervisor.

  1. Faça download do YAML para o Velero vSphere Operator do seguinte local:

    http://vmware.com/go/supervisor-service

    O arquivo de especificação do serviço é denominado velero-supervisorservice-1.0.0.yaml.

  2. No menu inicial vSphere Client, selecione Gerenciamento de carga de trabalho.
  3. Selecione a guia Serviços.
  4. Selecione o destino vCenter Server no menu suspenso na parte superior.
  5. Arraste e solte o arquivo de especificação de serviço velero-supervisorservice-1.0.0.yaml que você baixou no cartão Adicionar novo serviço.

    Como alternativa, você pode clicar em Adicionar, procurar e selecionar o arquivo velero-supervisorservice-1.0.0.yaml.

  6. Clique em Avançar e aceite o contrato de licença.
  7. Clique em Concluir.

    O Operador vSphereVelero está registrado com vCenter Server. Verifique se o serviço está em um estado Ativo. Você não poderá instalar o serviço se ele estiver Desativado.

  8. Localize a especificação do Operador vSphere do Velero na guia Serviços.
  9. Clique em Ações (Actions) > Instalar em supervisores (Install on Supervisors).A captura de tela mostra as opções do menu Ações na guia Serviços.
  10. Selecione o destino Supervisor no qual você deseja instalar o serviço.
    Observação: Se você não vir seu Supervisor, verifique se está usando a rede NSX-T.
  11. Configure a instalação do serviço do Velero vSphere Operator da seguinte maneira:
    1. Selecione a versão na lista suspensa: 1.1.0.
    2. Não especifique um endpoint de repositório.
    3. Não digite um nome de usuário ou senha.
    4. Clique em Avançar.
  12. Clique em Concluir (Finish) para concluir a instalação do serviço.

Verifique o serviço do Velero vSphere Operator no Supervisor e inicie a VM do Data Manager.

  1. No menu inicial vSphere Client, selecione Gerenciamento de carga de trabalho.
  2. Selecione Serviços (Services).
  3. Verifique se o Velero vSphere Operator está instalado e o status dele é Configurado.
  4. No pool de recursos Namespaces, verifique se você vê um novo namespace chamado svc-velero-vsphere-domain-xxx, em que xxx é um token alfanumérico exclusivo. Este é o namespace criado pelo sistema para o Operador vSphere do Velero.
    Observação: Você não precisa configurar esse namespace e não deve editá-lo.
  5. Na exibição Hosts and Clusters, selecione a VM Data Manager.
  6. Clique com o botão direito do mouse na VM do Data Manager e ligue-a.

Etapa 4: criar um namespace vSphere para o Velero Plugin for vSphere

Usando o vSphere Client, crie manualmente um vSphere Namespace em Supervisor. Esse namespace é necessário para o Velero Plugin for vSphere.
  • Nomeie o namespace velero.
  • Selecione o namespace velero e configure-o.
  • Especifique o armazenamento para o namespace velero.
  • Conceda a um usuário com os privilégios apropriados a permissão Editar no namespace velero.

Etapa 5: Criar o Configmap do plug-in do Velero

Crie um configmap para o plug-in do Velero chamado velero-vsphere-plugin-config.yaml.
apiVersion: v1
kind: ConfigMap
metadata:
  name: velero-vsphere-plugin-config
data:
  cluster_flavor: SUPERVISOR
Aplique o configmap em Supervisor.
kubectl apply -n <velero-namespace> -f velero-vsphere-plugin-config.yaml
Se você não instalar o configmap, receberá o seguinte erro ao tentar instalar o Velero Plugin for vSphere.
Error received while retrieving cluster flavor from config, err: configmaps "velero-vsphere-plugin-config" not found
Falling back to retrieving cluster flavor from vSphere CSI Driver Deployment

Etapa 6: Instalar o Velero Plugin for vSphere

Agora você está pronto para instalar o Velero Plugin for vSphere. Para fazer isso, baixe e execute a CLI do velero-vsphere.
Observação: Este procedimento requer uma VM Linux. Você deve fazer download e executar o velero-vsphere no host de salto Linux no qual executa as CLIs kubectl-vsphere e kubectl.
  1. Faça download da CLI Velero Plugin for vSphere do seguinte local:
    https://github.com/vmware-tanzu/velero-plugin-for-vsphere/releases/download/v1.4.0/velero-vsphere-1.2.0-linux-amd64.tar.gz
    Observação: Nos comandos a seguir, substitua 1.x.x pela versão do Velero que você baixou.
  2. Copie com segurança a CLI para o host de salto do Linux. Por exemplo:
    pscp -P 22 C:\temp\velero-vsphere-1.x.x-linux-amd64.tar.gz [email protected]:/home/ubuntu/tanzu
  3. Extraia a CLI velero-vsphere e torne-a gravável.
    tar -xf velero-vsphere-1.x.x-linux-amd64.tar.gz
    chmod +x velero-vsphere
  4. Adicione a CLI ao seu Caminho.
    export PATH="$(pwd)/velero-vsphere-1.x.x-linux-amd64:$PATH"
  5. Crie o arquivo s3-credentials com o seguinte conteúdo.
    aws_access_key_id = ACCESS-KEY-ID-STRING
    aws_secret_access_key = SECRET-ACCESS-KEY-STRING
  6. Obtenha a região, a URL e o nome do bucket do armazenamento de objetos compatível com o S3.
  7. Faça login no Supervisor usando o vSphere Plugin for kubectl.
  8. Alterne o contexto para o Supervisor.
    kubectl config use-context SUPERVISOR-CLUSTER-IP-ADDRESS
  9. Execute o seguinte comando da CLI velero-vsphere para instalar o Velero Plugin for vSphere no namespace velero que você criou.
    Exporte os valores para AWS $BUCKET e $REGION. Se você tiver se desviado de qualquer uma das instruções anteriores, ajuste esses valores também, como o nome ou o local do arquivo de segredos, o nome do namespace velero criado manualmente etc.
    export BUCKET=example-velero-sv && export REGION=us-east-1
     
    ./velero-vsphere install \
           --namespace velero \
           --version v1.8.1 \
           --provider aws \
           --plugins harbor-repo.vmware.com/velero/velero-plugin-for-aws:v1.5.0,harbor-repo.vmware.com/velero/velero-plugin-for-vsphere:v1.4.0 \
           --bucket $BUCKET \
           --secret-file ~/.aws/credentials \
           --snapshot-location-config region=$REGION \
           --backup-location-config region=$REGION
    Observação: A versão da CLI do Velero será v1.8.1 se a Velero Plugin for vSphere v1.4.0 for usada.
  10. Verifique a instalação bem-sucedida do Velero Plugin for vSphere.
    Na instalação bem-sucedida, você deverá ver a seguinte mensagem:
    Send the request to the operator about installing Velero in namespace velero
    Execute o seguinte comando para verificar melhor. Você deverá ver "Concluído" e a versão.
    kubectl -n velero get veleroservice default -o json | jq '.status'
    Resultado esperado:
    {
      "enabled": true,
      "installphase": "Completed",
      "version": "v1.8.1"
    }
    Observação: O comando acima pressupõe que você tenha o utilitário jq instalado, que formata a saída JSON enviada para o terminal. Se você não tiver o jq instalado, instale-o ou remova essa parte do comando (tudo após json).
  11. Solucione problemas conforme necessário.

    Se a instalação não for bem-sucedida, remova-a e tente novamente. Para remover a instalação, conclua as etapas na próxima seção na ordem listada.

Adendo: desinstalar o Velero Plugin for vSphere

Conclua estas etapas para desinstalar o Velero Plugin for vSphere. Conclua essas etapas na ordem listada.
  1. Execute a CLI velero-vsphere para desinstalar o Velero Plugin for vSphere.
    ./velero-vsphere uninstall -n velero
  2. Verifique se o vSphere Pod chamado velero foi removido.
    kubectl get pods -n velero

    Se você vir que o pod está "Encerrando", aguarde até que ele seja removido antes de continuar.

  3. Usando o vSphere Client, exclua o vSphere Namespace chamado velero que você criou manualmente.
    Observação: Não prossiga para a próxima etapa até que a exclusão do namespace seja concluída. Você pode usar o kubectl para verificar se o namespace velero foi removido (mas não use o kubectl para remover o namespace velero).
  4. Usando o vSphere Client, desinstale o Velero vSphere Operator do Supervisor.
    1. Selecione o cluster vCenter em que o Gerenciamento de carga de trabalho está ativado.
    2. Selecione Configurar (Configure) > vSphere Serviços > Visão geral ( Overview).
    3. Selecione o Operador Velero vSphere.
    4. Clique em Desinstalar.

      Essa ação desinstala o Operador vSphere do Velero do Supervisor. O operador permanece disponível para reinstalação na página Gerenciamento de carga de trabalho (Workload Management) > Serviços ( Services). Para remover o serviço completamente, selecione Ações (Actions) > Excluir ( Delete).

Adendo: Instalar o plug-in do Velero em um ambiente com falha de ar

Se você planeja instalar o Velero Plugin for vSphere em um ambiente air-gapped, deverá instalá-lo com imagens personalizadas. Você deve garantir que as imagens correspondentes de backup-driver e data-manager-for-plugin das imagens personalizadas estejam disponíveis no registro esperado e possam ser acessadas do cluster Kubernetes. Em um ambiente air-gapped, são esperadas imagens personalizadas do registro privado, pois as imagens liberadas no hub do docker não estão acessíveis.

Para instalar o plug-in, execute as seguintes etapas:
  1. Faça download das imagens liberadas de velero-plugin-for-vsphere, backup-driver e data-manager-for-plugin.
  2. Renomeie as imagens, ou seja, marque-as com <Registry endpoint and path> e <Version tag> correspondentes e carregue-as em repositórios personalizados.
  3. Instale o plug-in usando a imagem velero-plugin-for-vsphere personalizada.

    Quando você instala o Velero Plugin for vSphere em um cluster vanilla, ele implanta dois componentes adicionais, uma implantação do backup-driver e um DaemonSet data-manager-for-plugin em segundo plano. Nos clusters Supervisor e Tanzu Kubernetes, somente uma implantação backup-driver é implantada.

    Quando você fornece a imagem de contêiner de velero-plugin-for-vsphere, as imagens backup-driver e data-manager-for-plugin correspondentes são analisadas usando um mecanismo de análise de imagem.

    As imagens de contêiner são formalizadas no seguinte padrão:
    <Registry endpoint and path>/<Container name>:<Version tag>

    Quando você fornece a imagem de contêiner velero-plugin-for-vsphere, as imagens correspondentes de backup-driver e data-manager-for-plugin com <Registry endpoint and path> e <Version tag> correspondentes são analisadas.

    Por exemplo, considere a seguinte imagem de contêiner velero-plugin-for-vsphere:
    abc.io:8989/x/y/.../z/velero-plugin-for-vsphere:vX.Y.Z
    Espera-se que as seguintes imagens correspondentes de backup-driver e data-manager-for-plugin sejam extraídas:
    abc.io:8989/x/y/.../z/backup-driver:vX.Y.Z
    abc.io:8989/x/y/.../z/data-manager-for-plugin:vX.Y.Z
  4. Solucione problemas de instalação.
    Se houver algum problema ou erro ao analisar as imagens correspondentes de backup-driver e data-manager-for-plugin, a instalação retornará às imagens correspondentes dos repositórios oficiais do velerovsphereplugin no hub do Docker. Os seguintes problemas acionam o mecanismo de fallback:
    1. Um nome de contêiner inesperado é usado na imagem velero-plugin-for-vsphere personalizada na entrada do usuário.

      Por exemplo, x/y/velero-velero-plugin-for-vsphere:v1.1.1 é usado.

    2. O nome da implantação do Velero é personalizado para qualquer coisa que não seja velero. Por exemplo, um problema será disparado se o nome de implantação do Velero for atualizado para velero-server no arquivo manifests do Velero antes da implantação do Velero.

      O mecanismo de análise de imagem existente em velero-plugin-for-vsphere só pode reconhecer a implantação do Velero com o nome fixo, velero.