24 de fevereiro de 20265 min de leitura

Harbor em Produção: Considerações Essenciais para uma Infraestrutura de Containers Resiliente

Dhruv Tyagi and Daniel Jiang, Broadcom

Cloud Native Computing Foundation

Banner - Harbor em Produção: Considerações Essenciais para uma Infraestrutura de Containers Resiliente

O Harbor consolidou-se como o registro de artefatos open-source padrão para empresas que buscam controle total sobre suas imagens de container. Ele vai além do armazenamento, oferecendo políticas de segurança, controle de acesso baseado em funções (RBAC), varredura de vulnerabilidades e assinatura de imagens.

Para empresas brasileiras que operam em ambientes regulados ou que dependem de alta escala, apenas "instalar" o Harbor não é suficiente. É preciso garantir que a infraestrutura suporte o tráfego de produção sem se tornar um ponto único de falha. Este artigo analisa como tornar o Harbor verdadeiramente production-ready em ambientes Kubernetes (K8s).

Fluxo do Harbor desde o desenvolvimento até o cluster K8s

Embora a implantação inicial via Helm seja simples, a maturidade operacional exige atenção a pilares críticos. A seguir, detalhamos as configurações necessárias para transformar o Harbor em uma peça central e robusta da sua estratégia de cloud native.

1. Alta Disponibilidade (HA) e Escalabilidade

Em produção, o registro de imagens é um serviço crítico: se ele falha, seus pipelines de CI/CD param e novos deployments no Kubernetes falham. Para evitar interrupções, a configuração de HA é mandatória.

  • Deploy com Ingress: Utilize um Ingress controller (como Nginx ou Traefik) para gerenciar o tráfego de entrada e o cert-manager para a renovação automática de certificados TLS. No seu arquivo values.yaml, a configuração deve refletir essa estrutura:
expose:
  type: ingress
  tls:
    enabled: true
    certSource: secret 
  ingress:
    hosts:
      core: harbor.suaempresa.com.br
    annotations:
      kubernetes.io/ingress.class: traefik
      cert-manager.io/cluster-issuer: "harbor-cluster-issuer"
  • Redundância de Componentes: Não dependa de uma única réplica. Escale os componentes do Harbor para garantir que o serviço permaneça online durante atualizações ou falhas de nós.
core:
  replicas: 3
jobservice:
  replicas: 3
portal:
  replicas: 3
registry:
  replicas: 3
trivy:
  replicas: 3
exporter:
  replicas: 3
nginx:
  replicas: 3
  • Armazenamento Compartilhado: Garanta que os dados persistentes utilizem StorageClasses distribuídos (como vSAN, AWS EFS ou soluções de block storage multizona) para que os pods possam ser reprogramados em diferentes nós sem perda de dados.

  • Base de Dados e Redis Externos: O Harbor traz versões integradas de PostgreSQL e Redis, mas estas não são recomendadas para produção. Elas carecem de HA nativa, escalabilidade independente e dificultam a gestão de backups e point-in-time recovery (PITR). A recomendação estratégica é utilizar serviços gerenciados (como RDS ou Cloud SQL) ou operadores especializados (como Patroni ou CloudNativePG).

database:
  type: "external"
  external:
    host: "192.168.0.1"
    sslmode: "verify-full"
    # Use secrets para gerenciar credenciais de forma segura

2. Boas Práticas de SecOps

A segurança é o coração do Harbor. Em um cenário de aumento de ataques à cadeia de suprimentos (supply chain attacks), configurar esses recursos é vital.

  • TLS em todas as camadas: Habilite TLS interno para garantir que a comunicação entre os componentes do Harbor ocorra de forma criptografada dentro do cluster.
  • Integração com Identidade Corporativa: Em vez de gerenciar usuários locais, integre o Harbor ao seu provedor de identidade (AD, LDAP ou OIDC/Okta). Isso simplifica o offboarding e garante a conformidade com políticas de acesso.

Painel de configuração do Harbor

  • Vulnerability Scanning Ativo: O Harbor utiliza o Trivy para escanear imagens. Configure-o para bloquear o pull de imagens que contenham vulnerabilidades de severidade "High" ou "Critical".

Visão de administração do sistema no Harbor

  • Content Trust e Assinatura Digital: Utilize frameworks como Cosign ou Notation. Isso garante que apenas imagens assinadas digitalmente pelo seu pipeline de CI/CD aprovado possam ser baixadas pelos clusters de produção, mitigando o risco de injeção de código malicioso.

Configurações de segurança de deploy no Harbor

3. Estratégia de Storage e Lifecycle

O custo de storage e a performance de I/O são pontos sensíveis em FinOps e operações de larga escala.

  • Escolha do Storage Backend: Para ambientes cloud, utilize drivers nativos (S3, GCS, Azure Blob). Para ambientes on-premises, certifique-se de que a latência de rede entre o Harbor e o storage seja mínima.
  • Backup e Disaster Recovery: Utilize ferramentas como o Velero para realizar snapshots dos volumes persistentes e metadados do Kubernetes. Testar o rollback é tão importante quanto configurar o backup.
  • Garbage Collection (GC): Sem uma rotina de GC, o custo de armazenamento crescerá indefinidamente. Agende limpezas periódicas para remover camadas de imagens obsoletas e artefatos não utilizados.

Painel de Clean Up e Garbage Collection no Harbor

4. Observabilidade Transparente

Não opere às cegas. O Harbor expõe métricas nativas que devem ser consumidas pelo seu stack de monitoramento.

  • Métricas com Prometheus e Grafana: Monitore latência de API, taxa de erro no pull/push de imagens e consumo de recursos. Utilize o ServiceMonitor para que o Prometheus descubra automaticamente os componentes do Harbor.
  • Centralização de Logs: Encaminhe os logs do Harbor para um stack ELK ou Grafana Loki. Isso é essencial para Auditoria e troubleshooting rápido de falhas de autenticação ou erros de rede.

Conclusão

Adotar o Harbor em produção exige uma mudança de mentalidade: de uma ferramenta de armazenamento para um componente crítico de infraestrutura. Ao implementar alta disponibilidade, segurança rigorosa e observabilidade proativa, sua empresa garante não apenas a estabilidade das aplicações, mas também a integridade de todo o ciclo de entrega de software.


Artigo originalmente publicado por Dhruv Tyagi and Daniel Jiang, Broadcom em Cloud Native Computing Foundation.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset