Skip to main content

Harbor: O Registry de Containers Seguro e Eficiente para Kubernetes

harbor

Documentação

Harbor é um container registry open source, graduado na CNCF, que faz exatamente o que se propõe de forma muito bem feita.

Além de hospedar imagens que é sua função principal, temos:

  • Digitalização de vulnerabilidades de imagens: As imagens podem ser escaneadas dentro do próprio Harbor mostrando o relatório com as vulnerabilidades e gerando alertas. O Trivy é o padrão, mas pode ser utilizado o Clair, Sysdig, Cyberwatch, Dosec e outros.

  • Replicação de imagens: Podemos fazer push e pull de imagens para outro registry com base em regras. Pode ser útil em casos em que você deseja ter diferentes image registries e mantê-los sincronizados. Também é útil para migrar de um Docker registry antigo para um novo. Compatível com Docker Hub, Distribution, GCR, ECR, ACR, AliCR, Artifactory, Quay, GitLab Registry, etc.

  • Assinatura de imagens: Utiliza o Cosign e o Notation internamente para assinar uma imagem automaticamente.

  • Cotas de projeto: É possível definir uma cota em qualquer projeto para poder gerenciar o uso do disco.

  • Gerenciamento de usuário: A autenticação dos usuários pode ser feita de diferentes formas e protege os artefatos com políticas e controle de acesso baseado em função.

Muitas empresas preferem manter suas imagens on-premisse com um controle granular de acesso mesmo utilizando a cloud, evitando inclusive que desenvolvedores tenham acesso direto à cloud e utilizam o Harbor para tal propósito.

Para ambientes on-premise, o Harbor hoje é a melhor escolha como Image Registry.

Alternativas ao Harbor

Geralmente as clouds oferecem registries e são até muito baratos, mas não trazem as mesmas funcionalidades que o Harbor (replicação, scan), fazendo o necessário e toda a parte de autenticação e cotas configuráveis através da própria cloud com um controle mais centralizado.

  • Amazon Elastic Container Registry (ECR)
  • Azure Container Registry (ACR)
  • Google Container Registry (GCR)
  • Alibaba Container Registry
  • Oracle Cloud Infrastructure Registry

O Docker Hub é o registry mais popular, mas acaba sendo um custo a mais para a empresa e não é muito barato.

Compatibilidade

Harbor vs Nexus

Uma comparação entre alguns recursos que estão disponíveis no Harbor, mas não no Nexus:

  • Generalidade: O Nexus é um gerenciador de repositório universal que pode lidar com diferentes tipos de tecnologias, como Maven, NPM, Ruby Gems, Python Eggs, etc. O Harbor é um registro Docker puro que gerencia apenas imagens Docker.

  • Digitalização de imagens: o Harbor tem alguns recursos que o Nexus não tem, como digitalização de vulnerabilidades de imagens, replicação de imagens, assinatura de imagens e cotas de projeto.

  • Replicação: O Nexus não faz a replicação de imagens em diferentes repositórios. Poderíamos ter 2 instâncias do Harbor, uma para dev e outra para staging/production e fazer o sincronismo entre elas. Podemos utilizar esse recurso no Harbor para fazer a migração do Nexus para o Harbor sem precisar criar scripts.

  • Coleta de lixo: No Harbor, diferentemente do Nexus, você pode definir uma regra para coletar automaticamente as camadas de imagens órfãs que não são usadas por nenhuma outra imagem e eliminá-las do repositório.

  • Cota do projeto: Você pode definir uma cota em qualquer projeto para poder gerenciar o uso do disco no Harbor; no Nexus não.