Este site utiliza cookies

Utilizamos cookies para melhorar sua experiência de navegação, personalizar conteúdo e analisar nosso tráfego. Ao clicar em 'Aceitar', você concorda com o uso de cookies conforme nossa Política de Privacidade.

Virtualização

Integrando o VMware Data Services Manager com o Harbor para um Registro Pronto para Produção

VMware
15 de dezembro de 2025
10 min de leitura
Compartilhar:
Integrando o VMware Data Services Manager com o Harbor para um Registro Pronto para Produção

Tornando o Harbor Pronto para Produção: Utilizando o VMware Data Services Manager para um Backend PostgreSQL de Alta Disponibilidade

Harbor é um registry open-source amplamente adotado que protege artefatos com controle de acesso baseado em função (Role-Based Access Control - RBAC), realiza scans de imagens para vulnerabilidades e garante que as imagens sejam replicadas e confiáveis. Como um registry cloud-native, ele é um componente crítico para qualquer organização que utilize Kubernetes e containerization (uso de contêineres).

Em nosso blog anterior, estabelecemos que, embora o Harbor inclua um banco de dados PostgreSQL integrado, essa configuração geralmente não é recomendada para uso em produção. A implantação de um registry de contêineres resiliente e de alta disponibilidade (HA) exige a separação do ciclo de vida da aplicação e do banco de dados para garantir a excelência operacional.

Aqui estão as principais razões pelas quais um banco de dados dedicado e externo é fundamental para implantações de produção do Harbor:

  • Falta de Alta Disponibilidade (HA): A configuração padrão interna do PostgreSQL é tipicamente uma única instância, criando um single point of failure (ponto único de falha). Uma falha no pod do banco de dados significa que toda a sua instância Harbor se torna indisponível.
  • Escalabilidade Limitada: Um banco de dados embarcado não foi projetado para escalonamento independente. Gargalos de desempenho do banco de dados que surgem com o crescimento podem ser difíceis de resolver sem interromper o próprio Harbor.
  • Gerenciamento de Ciclo de Vida Complexo: Gerenciar operações críticas de banco de dados, como backups, recuperação pontual (point-in-time recovery), aplicação de patches e upgrades, diretamente no Helm chart de uma aplicação é significativamente mais complexo e propenso a erros do que com soluções de banco de dados dedicadas.

A Solução: Aproveitando o VMware Data Services Manager com o Harbor

Para enfrentar esses desafios, precisamos de um cluster PostgreSQL de alta disponibilidade. É aqui que entra o VMware Data Services Manager (DSM).

O VMware Cloud Foundation (VCF) é a plataforma de private cloud que oferece segurança, resiliência e desempenho on-premises, fornecendo a infraestrutura subjacente para ambientes de private cloud modernos, incluindo os clusters Kubernetes onde aplicações como o Harbor são implantadas.

O VMware Data Services Manager (DSM) é a solução Database-as-a-Service (DBaaS) para sua private cloud VCF. Ele fornece provisionamento de banco de dados self-service real para desenvolvedores e DBAs, ao mesmo tempo que oferece governança para essas workloads (cargas de trabalho) essenciais.

O DSM simplifica a adição de alta disponibilidade, replicação e escala a bancos de dados Postgres, bem como gerenciamento de ciclo de vida automatizado e backups que suportam a recuperação pontual. Isso torna o DSM a escolha ideal para suportar aplicações de missão crítica como o Harbor.

Este guia detalha o processo de integração, mostrando como provisionar e gerenciar uma instância PostgreSQL usando o VMware Data Services Manager para ser usada como o banco de dados backend persistente para um container registry Harbor implantado via Helm no Kubernetes.

Pré-requisitos

Antes de prosseguir, certifique-se de ter o seguinte em vigor:

  • Um cluster Kubernetes em execução: O Harbor será implantado aqui.
  • VMware DSM: Usado para provisionar e gerenciar a instância do banco de dados PostgreSQL. Siga o guia para instalar e configurar o DSM no VCF 9.0.
  • Helm: O gerenciador de pacotes para Kubernetes.
  • Conectividade de Rede: O cluster Kubernetes deve ser capaz de alcançar a instância PostgreSQL implantada pelo DSM. Garanta que as regras de rede e firewall necessárias estejam configuradas.

Passo 1: Provisionando o PostgreSQL com o VMware DSM

O VMware DSM simplifica a implantação e o gerenciamento de bancos de dados. Siga estas etapas para provisionar uma instância PostgreSQL de alta disponibilidade:

  1. Acesse o DSM: Faça login no seu console do VMware DSM.
  2. Verifique as Versões do Postgres: Confirme se as versões desejadas do PostgreSQL estão habilitadas no DSM.
  3. Crie uma Instância PostgreSQL: Navegue até Databases > Postgres e clique em Create Database (Criar Banco de Dados).
  4. Configure Detalhes Básicos: Preencha os detalhes do banco de dados Postgres:
    • DSM Namespace (Namespace do DSM)
    • Versão do PostgreSQL
    • Nome da Instância (Instance name)
    • Nome do Banco de Dados (Database name)
    • Credenciais do Postgres (nome de usuário e senha)
  5. Configure Disponibilidade e Proteção de Dados: Selecionamos HA em um cluster vSphere. Isso nos fornece uma instância de banco de dados de alta disponibilidade. Além disso, habilite a replicação remota para outra instância, se desejar (para disaster recovery - recuperação de desastres), e o agendamento de backup (para proteção e conformidade de dados).
  6. Configure a Infraestrutura: Selecione o seguinte:
    • Infrastructure policy (Política de Infraestrutura)
    • Storage policy (Política de Armazenamento)
    • VM class (Classe de VM)
    • Tamanho do disco (Disk size) para o banco de dados
  7. Configurações Adicionais: Habilite quaisquer configurações adicionais conforme necessário para o seu ambiente.
  8. Revise e Crie: Revise o resumo e clique em Create (Criar).
  9. Confirme a Disponibilidade do Banco de Dados: Assim que a implantação for concluída, verifique se o banco de dados está sendo executado com sucesso. Navegue até os detalhes do banco de dados para obter as informações de conexão que serão usadas na configuração do Helm chart do Harbor.

Passo 2: Preparando a Configuração do Helm Chart do Harbor

O Harbor requer uma configuração específica em seu arquivo values.yaml para se conectar a um banco de dados PostgreSQL externo.

  1. Baixe o Helm Chart do Harbor: Adicione o repositório Helm do Harbor e obtenha o chart.

    bash
    helm repo add harbor https://helm.goharbor.io
    helm fetch harbor/harbor --untar
    
  2. Configure o values.yaml: Abra o arquivo values.yaml dentro do diretório harbor descompactado. Localize as seções de configuração do banco de dados e faça as seguintes alterações críticas:

    • Defina o Tipo de Banco de Dados: Defina database.type como external. Isso informa ao Harbor para usar um banco de dados externo.
    • Configure o PostgreSQL Externo: Preencha os detalhes para o banco de dados externo na seção database.external usando as informações do Passo 1.

    Um trecho do values.yaml configurado deve ser assim:

    yaml
    # Disable the internal PostgreSQL container
    database:
      type: external
      external:
        host: "10.1.1.6"
        port: 5432
        username: "pgadmin"
        password: "Harbor Database User Password"
        coreDatabase: "postgres-harbor"
        sslmode: disable # Adjust based on your DSM configuration
    

    Nota: Para ambientes de produção, considere habilitar conexões SSL/TLS ajustando o parâmetro sslmode e configurando os certificados apropriados no DSM.

Passo 3: Implantando o Harbor no Kubernetes

Com o arquivo values.yaml atualizado, agora você pode implantar o Harbor em seu cluster Kubernetes.

  1. Execute a Implantação Helm: Execute o comando Helm install, referenciando seu arquivo de configuração modificado.

    bash
    helm install harbor harbor/harbor --namespace harbor --create-namespace -f values.yaml
    

    Este comando irá:

    • Criar um novo namespace chamado harbor.
    • Implantar o Harbor usando a configuração externa do PostgreSQL.
    • Instalar todos os componentes do Harbor, exceto o pod do banco de dados.
  2. Verifique a Implantação: Monitore o status de implantação dos pods do Harbor.

    bash
    kubectl get pods -n harbor
    

    Todos os componentes do Harbor (core, jobservice e registry) devem eventualmente atingir o estado Running (Em Execução). Observe que nenhum pod de banco de dados será implantado, pois configuramos o Harbor para usar um banco de dados externo. A implantação se conectará ao banco de dados PostgreSQL hospedado pelo DSM.

Passo 4: Verificação e Manutenção

Uma vez que o Harbor esteja implantado, verifique sua conexão com o banco de dados externo e entenda como o DSM auxilia na manutenção contínua.

  1. Teste o Acesso ao Harbor: Acesse a UI (Interface de Usuário) do Harbor através do serviço Load Balancer (Balanceador de Carga) configurado. Faça login usando as credenciais configuradas no values.yaml. O login bem-sucedido confirma que o Harbor está operacional e pode se comunicar com o backend PostgreSQL.

  2. Verifique a Conectividade do Banco de Dados: Para confirmar que o Harbor está realmente usando o banco de dados PostgreSQL gerenciado pelo DSM, vamos nos conectar diretamente ao banco de dados e inspecionar seu conteúdo.

    Primeiro, certifique-se de ter a ferramenta cliente psql instalada em um sistema que tenha conectividade de rede com o banco de dados. Em seguida, conecte-se à instância PostgreSQL externa do Harbor:

    bash
    psql "host=10.1.1.6 port=5432 dbname=postgres-harbor user=pgadmin password=db-password"
    

    Uma vez conectado, liste todos os bancos de dados para confirmar a existência do banco de dados postgres-harbor:

    sql
    \l
    

    Conecte-se ao banco de dados postgres-harbor:

    sql
    \c postgres-harbor
    

    Liste todas as tabelas no banco de dados:

    sql
    \dt
    

    Você deverá ver todas as tabelas relacionadas ao Harbor, como harbor_user, p2p_preheat_policy e sbom_report. Isso confirma que o Harbor configurou com sucesso este banco de dados PostgreSQL externo e o está usando como seu datastore backend (armazenamento de dados de backend).

  3. Aproveite o DSM para Operações: Uma das principais vantagens de usar o VMware DSM é o gerenciamento simplificado do ciclo de vida do banco de dados. Quaisquer futuras operações de banco de dados podem ser gerenciadas e automatizadas de forma eficiente através do console do DSM:

    • Escalonamento: Ajuste os recursos de computação alterando a VM Class, ou aumente a capacidade de storage (armazenamento) do banco de dados conforme o uso do Harbor cresce.
    • Backups: Configure agendamentos de backup automatizados.
    • Recuperação Pontual (Point-in-Time Recovery): Restaure o banco de dados para qualquer estado anterior em caso de corrupção de dados.
    • Patching e Upgrades: Aplique patches de segurança e upgrades de versão do PostgreSQL com tempo de inatividade mínimo.
    • Monitoramento: Acompanhe métricas de desempenho do banco de dados, estatísticas de consulta e utilização de recursos.

Essa abordagem reduz significativamente a sobrecarga operacional tipicamente associada ao gerenciamento de storage persistente para aplicações críticas, permitindo que sua equipe se concentre nas operações do Harbor em vez da administração do banco de dados.

Conclusão

Ao combinar os recursos de Database-as-a-Service do VMware Data Services Manager com a orquestração robusta do Kubernetes e o ecossistema Helm, você pode estabelecer um backend de alta disponibilidade e facilmente gerenciável para o seu container registry Harbor.

Esta arquitetura separa o ciclo de vida do banco de dados do ciclo de vida da aplicação, proporcionando vários benefícios importantes:

  • Confiabilidade Aprimorada: Configurações de alta disponibilidade protegem contra falhas no banco de dados.
  • Operações Simplificadas: O DSM automatiza tarefas rotineiras de gerenciamento de banco de dados.
  • Melhor Escalabilidade: O banco de dados e a aplicação podem escalar independentemente com base nas necessidades reais.
  • Segurança Aprimorada: Gerenciamento centralizado do banco de dados com políticas e patching consistentes.
  • Complexidade Reduzida: Concentre-se nas operações da aplicação enquanto o DSM lida com a administração do banco de dados.

Essa abordagem permite que você aproveite os recursos avançados do DSM para resiliência de banco de dados e gerenciamento simplificado, mantendo sua implantação de aplicação ágil no Kubernetes – o melhor dos dois mundos para um registry Harbor pronto para produção.


Siga nossa série de blogs sobre Harbor: Blog 1 – Harbor: Seu Container Registry Enterprise-Ready para uma Private Cloud Moderna Blog 2 – Reduzindo a Complexidade de Implantação do Harbor no Kubernetes Blog 3 – Tornando o Harbor Pronto para Produção: Considerações Essenciais para Implantação

Descubra mais no VMware Cloud Foundation (VCF) Blog Assine para receber as últimas postagens em seu e-mail.

Precisa de ajuda com suas soluções de TI?

A VirtuAllIT Solutions oferece consultoria especializada em virtualização, cloud computing e infraestrutura tecnológica.