Skip to main content

Harbor: El Registry de Contenedores Seguro y Eficiente para Kubernetes

harbor

Documentación

Harbor es un container registry open source, graduado en CNCF, que hace exactamente lo que se propone de forma muy bien hecha.

Además de alojar imágenes que es su función principal, tenemos:

  • Escaneo de vulnerabilidades de imágenes: Las imágenes pueden ser escaneadas dentro del propio Harbor mostrando el informe con las vulnerabilidades y generando alertas. Trivy es el estándar, pero puede utilizarse Clair, Sysdig, Cyberwatch, Dosec y otros.

  • Replicación de imágenes: Podemos hacer push y pull de imágenes hacia otro registry basado en reglas. Puede ser útil en casos donde deseas tener diferentes image registries y mantenerlos sincronizados. También es útil para migrar de un Docker registry antiguo a uno nuevo. Compatible con Docker Hub, Distribution, GCR, ECR, ACR, AliCR, Artifactory, Quay, GitLab Registry, etc.

  • Firma de imágenes: Utiliza Cosign y Notation internamente para firmar una imagen automáticamente.

  • Cuotas de proyecto: Es posible definir una cuota en cualquier proyecto para poder gestionar el uso del disco.

  • Gestión de usuarios: La autenticación de los usuarios puede hacerse de diferentes formas y protege los artefactos con políticas y control de acceso basado en roles.

Muchas empresas prefieren mantener sus imágenes on-premise con un control granular de acceso incluso utilizando la nube, evitando inclusive que desarrolladores tengan acceso directo a la nube y utilizan Harbor para tal propósito.

Para entornos on-premise, Harbor hoy es la mejor elección como Image Registry.

Alternativas a Harbor

Generalmente las nubes ofrecen registries y son hasta muy baratos, pero no traen las mismas funcionalidades que Harbor (replicación, scan), haciendo lo necesario y toda la parte de autenticación y cuotas configurables a través de la propia nube con un control más centralizado.

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

Docker Hub es el registry más popular, pero acaba siendo un costo adicional para la empresa y no es muy barato.

Compatibilidad

Harbor vs Nexus

Una comparación entre algunos recursos que están disponibles en Harbor, pero no en Nexus:

  • Generalidad: Nexus es un gestor de repositorio universal que puede manejar diferentes tipos de tecnologías, como Maven, NPM, Ruby Gems, Python Eggs, etc. Harbor es un registro Docker puro que gestiona solo imágenes Docker.

  • Escaneo de imágenes: Harbor tiene algunos recursos que Nexus no tiene, como escaneo de vulnerabilidades de imágenes, replicación de imágenes, firma de imágenes y cuotas de proyecto.

  • Replicación: Nexus no hace la replicación de imágenes en diferentes repositorios. Podríamos tener 2 instancias de Harbor, una para dev y otra para staging/producción y hacer la sincronización entre ellas. Podemos utilizar este recurso en Harbor para hacer la migración de Nexus a Harbor sin necesidad de crear scripts.

  • Recolección de basura: En Harbor, a diferencia de Nexus, puedes definir una regla para recolectar automáticamente las capas de imágenes huérfanas que no son usadas por ninguna otra imagen y eliminarlas del repositorio.

  • Cuota del proyecto: Puedes definir una cuota en cualquier proyecto para poder gestionar el uso del disco en Harbor; en Nexus no.