Containers

Héberger son propre registre de conteneurs

Voici un petit projet personnel que je partage ici dans un billet de blog. Je développe une petite application au sein de mon "lab" et je souhaite qu'elle soit dans un conteneur. Cette application va tourner sur un orchestrateur de conteneurs bien connu, Kubernetes.

Mais pour cela, je dois construire l'image du conteneur et la mettre à disposition pour que l'orchestrateur puisse la récupérer et créer une instance à partir de celle-ci. C'est la genèse de ma recherche de solution pour héberger un registre de conteneurs et ainsi que je découvre Harbor.

Harbor est une application open source qui permet d'héberger son propre service de registre. Les équivalents Cloud public les plus connus sont :

Sans plus attendre, rentrons dans le vif du sujet et passons à l'installation de la solution.

Prérequis

Il faut au minimum 2 CPU, 2 Go de RAM et 40 Go de disque (https://goharbor.io/docs/1.10/install-config/installation-prereqs/). C'est parfait pour mon homelab.

Docker engine et Docker compose doivent également être installés. Nous ne détaillerons pas ici comment réaliser ces étapes.

Installation

L'installation est simple et bien décrite dans la documentation officielle (https://goharbor.io/docs/1.10/).

A partir de la page GitHub suivante https://github.com/goharbor/harbor/releases, il faut télécharger (avec wget, par exemple) la dernière version de l'utilitaire d'installation.

wget https://github.com/goharbor/harbor/releases/download/version/harbor-online-installer-version.tgz
tar xvf harbor-online-installer-version.tgz

Extraction du contenu de l'archive avec la commande tar :

tar xvf harbor-online-installer-version.tgz

Le service, au sein de mon homelab, n'est pas directement exposé sur Internet. Donc j'ai omis volontairement la partie de configuration HTTPS (https://goharbor.io/docs/1.10/install-config/configure-https/). Dans mon cas, la terminaison HTTPS est portée par un autre serveur (reverse proxy).

Pour configurer le service avant l'installation, il est nécessaire d'éditer le fichier harbor.yml contenu dans le dossier précédemment extrait. Il est possible d'y rentrer un certain nombre d'informations, tout est détaillé dans la documentation ici : https://goharbor.io/docs/1.10/install-config/configure-yml-file/.

Une fois les modifications effectuées dans le fichier de configuration, l'installation peut être lancée.

Il est possible d'installer des services complémentaires avec Harbor, comme Clair pour l'analyse statique pour détecter la présence de vulnérabilités au sein des images (article à venir sur le sujet) ou encore Notary pour la signature du contenu.

L'option d'installation simple est la suivante :

./install.sh

Pour installer Harbor avec CoreOS Clair, voici la commande à exécuter :

./install.sh --with-clair

Ça y est, le service est installé et il ne reste plus qu'à aller sur l'URL configurée pour finaliser la configuration du service.

La page d'accueil, une fois le service configuré devrait ressembler à ça :

HarborHomepage

Et voilà, il n'y a plus qu'à construire des images !

{{ message }}

{{ 'Comments are closed.' | trans }}