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).

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-managerpara a renovação automática de certificados TLS. No seu arquivovalues.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
StorageClassesdistribuí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.

- 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".

- 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.

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.

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
ServiceMonitorpara 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.